Eu gostaria de poder marcar amigos existentes usando a API gráfica:
Este é o código que tenho no momento. A foto está sendo carregada, mas não está marcando o usuário especificado no user_id:
UIImage *testImage = [UIImage imageNamed:@"sendingTo"];
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:kFacebookFBConnectAppID, @"app_id",
testImage, @"source",
@"1381470076", @"message_tags",
@"TEST!", @"message", nil];
[self.socialIntegration.facebook requestWithGraphPath:[NSString stringWithFormat:@"/me/photos?access_token=%@", self.socialIntegration.facebook.accessToken]
andParams:params
andHttpMethod:@"POST" andDelegate:self];
É o message_tags
atributo não é o atributo correto para usar?
Obrigado!
EDITAR Pelo que vejo aqui (https://developers.facebook.com/docs/reference/api/photo/#tags), parece que preciso fazer três chamadas no total:
- Poste a foto com o código que já possuo
- Peça ao Facebook para me fornecer a identificação desta foto (que provavelmente posso obter no FBRequestDelegate)
- Identifique as pessoas após a postagem.
Respostas:
5 para resposta № 1ok, descobri.
Aqui está como você faz isso.
Primeiro, você carrega a imagem.
UIImage *testImage = [UIImage imageNamed:@"sendingTo"];
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:kFacebookFBConnectAppID, @"app_id",
testImage, @"source",
@"TEST!", @"message", nil];
[self.socialIntegration.facebook requestWithGraphPath:[NSString stringWithFormat:@"/me/photos?access_token=%@", self.socialIntegration.facebook.accessToken]
andParams:params
andHttpMethod:@"POST" andDelegate:self];
Em seguida, após o upload bem-sucedido, o - (void)request:(FBRequest *)request didLoad:(id)result
método irá retornar um dicionário result
com 1 chave id
. Esse ID é o photoID da foto que você acabou de enviar, que você salva em uma string:
NSString *photoID = [NSString stringWithFormat:@"%@", [(NSDictionary*)result valueForKey:@"id"]];
Em seguida, faça outra solicitação GraphAPI para marcar seus amigos. No código a seguir, estou marcando um amigo específico, mas para marcar vários amigos, use string ou array CSV:
[self.socialIntegration.facebook requestWithGraphPath:[NSString stringWithFormat:@"%@/tags/%@?access_token=%@", photoID, @"1381470076", self.socialIntegration.facebook.accessToken]
andParams:nil
andHttpMethod:@"POST" andDelegate:self];