Facebook个人资料图片&使用Objective-C从App Scoped ID命名

时间:2014-09-22 12:35:09

标签: ios objective-c facebook facebook-graph-api

我在iOS应用程序中使用Facebook Friend Picker。当我选择一个朋友时,我只会获得一个App Scoped ID,但我需要Facebook ID来获取该朋友的个人资料图片和名称。

是否可以将App Scoped ID转换为正常的Facebook ID或使用App Scoped ID检索该数据?

我读了很多关于https://developers.facebook.com/docs/apps/upgrading#upgrading_v2_0_user_ids的内容,但无法找到解决方案。

更新

我正试图获取这样的个人资料图片(之前使用普通的Facebook ID工作):

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?type=large&access_token={access_token}|{secret}", item.giftID]];
NSData *tempData =  [NSURLConnection sendSynchronousRequest:[NSURLRequest requestWithURL:url] returningResponse:nil error:nil];

然后我会将tempData放在UIImageView这样:

UIImageView *profilePic = (UIImageView *)[myCell viewWithTag:1];
profilePic.image = [UIImage imageWithData:tempData];

但这似乎不适用于新的API调用,有关如何修复它的任何想法?

2 个答案:

答案 0 :(得分:3)

我找到了另一种使用Scoped App ID检索配置文件图片的方法,毕竟这很简单。

http://graph.facebook.com/ScopedAddID/picture?type=normal

此代码完成了这项工作。

答案 1 :(得分:0)

您可以在API通话中使用您的应用ID和密码来获取用户的姓名或图片:

https://graph.facebook.com/{app_scoped_id}?fields=name,picture&access_token={app_id}|{app_secret}

这将为您提供用户所需的详细信息,例如:

{
   "name": "Niraj Shah",
   "picture": {
      "data": {
         "is_silhouette": false,
         "url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xap1/v/t1.0-1/c58.40.500.500/s50x50/18400_10100210273961696_245749691_n.jpg?oh=42982af99b925b1167e52f82eb8316c3&oe=5485298D&__gda__=1418016600_1e8a22c1ac6366f6dbad85990c817e65"
      }
   },
   "id": "10100392436431646"
}