/ / Marque amigos no upload de fotos do Facebook - objetivo-c, ios, facebook, cocoa-touch, facebook-graph-api

Tag amigos no Facebook Photo Upload - objetivo-c, ios, facebook, cacau-toque, facebook-graph-api

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:

  1. Poste a foto com o código que já possuo
  2. Peça ao Facebook para me fornecer a identificação desta foto (que provavelmente posso obter no FBRequestDelegate)
  3. Identifique as pessoas após a postagem.

Respostas:

5 para resposta № 1

ok, 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];