在Facebook照片上传中标记好友

我希望能够使用图api标记现有的朋友:

这是我目前的代码。 该照片正在上传,但照片不标记在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]; 

message_tags属性是不是正确的属性使用?

谢谢!

编辑从我在这里看到( https://developers.facebook.com/docs/reference/api/photo/#tags ),看起来我需要总共三个电话:

  1. 用我已经有的代码发布照片
  2. 要求Facebook给我这张照片的ID(我可以从FBRequestDelegate中获得)
  3. 发布后标记人物。

好吧,算出来。

这是你如何做到的。

首先,你上传图片。

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

接下来,成功上传后, - (void)request:(FBRequest *)request didLoad:(id)result方法将返回带有1个密钥id的字典result 。 该ID是您刚刚上传的照片的照片ID,您将其保存为string:

 NSString *photoID = [NSString stringWithFormat:@"%@", [(NSDictionary*)result valueForKey:@"id"]]; 

然后制作另一个GraphAPI请求来标记你的朋友。 在下面的代码中,我标记了一个特定的朋友,但要标记多个朋友使用CSVstring或数组:

 [self.socialIntegration.facebook requestWithGraphPath:[NSString stringWithFormat:@"%@/tags/%@?access_token=%@", photoID, @"1381470076", self.socialIntegration.facebook.accessToken] andParams:nil andHttpMethod:@"POST" andDelegate:self];