【问题标题】:iOS getting User's Facebook ID & friends List with Profile picture URL of FriendsiOS 获取用户的 Facebook ID 和好友列表以及好友的头像 URL
【发布时间】: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。你能帮我一下吗,我怎样才能在一个电话中得到这两个东西?

【问题讨论】:

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


【解决方案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、朋友姓名。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-15
      • 2015-03-16
      相关资源
      最近更新 更多