iOS获得用户';s Facebook ID&;好友列表和好友的个人资料图片URL

iOS获得用户';s Facebook ID&;好友列表和好友的个人资料图片URL,ios,objective-c,facebook,facebook-graph-api,Ios,Objective C,Facebook,Facebook Graph Api,我想从Facebook和好友列表中获取用户id,以及好友id和好友的个人资料图片URL。我有两个代码示例,第一个是 NSDictionary *params = @{@"fields": @"name, id, picture"}; FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"/me/friends" parameters:params HTTPMethod:@"GET"]; 这会返回好

我想从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。你能帮我一下吗?我怎样才能在一个电话里同时得到这两样东西?

你可以使用以下代码:

NSString *pictureURL = [NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?type=large&return_ssl_resources=1", facebookID];

请使用以下代码段:

-(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.
        }
    }];

}
斯威夫特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

             }
        }
    }
}

用户信息中有您需要的数据。

您能给我看一下权限吗gave@BhupatBheda权限是[@“public_profile”、@“email”、@“user_friends”]可以使用字段扩展,是的,它会返回Facebook ID。在我的问题中,我写道解决方案1会给我图片,但它会返回我用户自己的ID、名称,图片等。我想要用户id和他朋友的用户id。在你的问题中,你写道“这返回用户的Facebook id,朋友列表,但不返回朋友的个人资料图片URL”。是的,这两种解决方案都很好,但我希望在一个查询中同时输出这两个结果。我想要用户自己的id,朋友id,朋友档案图片url,朋友姓名。