iOS 获取用户的 Facebook ID 和好友列表以及好友的头像 URL
Posted
技术标签:
【中文标题】iOS 获取用户的 Facebook ID 和好友列表以及好友的头像 URL【英文标题】:iOS getting User's Facebook ID & friends List with Profile picture URL of Friends 【发布时间】:2017-04-27 13:07:16 【问题描述】:我想从 Facebook 和好友列表中获取用户 ID,以及好友 ID 和好友的个人资料图片 URL。我有两个代码示例,第一个是
NSDictionary *params = @@"fields": @"name, id, picture";
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphpath:@"/me/friends" parameters:params HTTPMethod:@"GET"];
这也返回带有好友头像 URL 的好友列表,但不返回用户自己的 Facebook id。第二个是
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"/me" parameters:@@"fields": @"id,name,friends, picture"]
这会返回用户的 Facebook id、好友列表,但不会返回好友的头像 URL。你能帮我一下吗,我怎样才能在一个电话中得到这两个东西?
【问题讨论】:
你能告诉我你给的权限是什么 @Bhupat Bheda 权限为 [@"public_profile", @"email", @"user_friends"] 可以使用字段扩展,developers.facebook.com/docs/graph-api/using-graph-api/… 是的,它返回 Facebook ID。 【参考方案1】:请使用下面的代码 sn-p:
-(void)getFacebookFriednData
FBSDKLoginManager *fbSdkLoginManager = [[FBSDKLoginManager alloc] init];
[fbSdkLoginManager logOut];
[fbSdkLoginManager logInWithReadPermissions:@[@"email",@"public_profile",@"user_friends"] fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
if (!error)
if (!result.isCancelled)
NSDictionary *params = @@"fields":@"id,name,email,picture,friends";
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
initWithGraphPath:@"me"
parameters:params
HTTPMethod:@"GET"];
[SVProgressHUD show];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error)
[SVProgressHUD dismiss];
if (!error)
NSLog(@"%@",result); // here u get all require data
];
else
NSLog(@"%@",error.localizedDescription); ?/ Handle Error Here.
];
【讨论】:
【参考方案2】:SWIFT 3
这是我为使用我的应用程序的朋友获取此信息的方式
if ((FBSDKAccessToken.current()) != nil)
if let request = FBSDKGraphRequest(graphPath: "me/friends", parameters: ["fields": "email, name, gender, picture"] )
request.start(completionHandler: (connection, result, error) in
if (error == nil)
guard let userInfo = result as? [String: Any] else return //handle the error
print("data------:\(userInfo)")
else
//handle any errors
userInfo 有你需要的数据。
【讨论】:
【参考方案3】:您可以使用此代码:
NSString *pictureURL = [NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?type=large&return_ssl_resources=1", facebookID];
【讨论】:
在我的问题中,我写了解决方案 1 给了我图片,但它确实返回了我用户自己的 ID、姓名、图片等。我想要用户 ID 和他朋友的用户 ID。 在您的问题中,您写道“这会返回用户的 Facebook id、好友列表,但不会返回好友的头像 URL。” 是的,这两种解决方案都运行良好,但我希望在一个查询中同时获得这两种输出。我想要用户自己的 id、朋友 id、朋友个人资料图片 url、朋友姓名。以上是关于iOS 获取用户的 Facebook ID 和好友列表以及好友的头像 URL的主要内容,如果未能解决你的问题,请参考以下文章