【问题标题】:Unable to get friends list on Facebook SDK 4 for iOS无法在 iOS 版 Facebook SDK 4 上获取好友列表
【发布时间】:2016-05-07 21:08:41
【问题描述】:

我正在尝试使用 Facebook SDK 获取朋友列表,但没有成功。

这是我使用的代码:

FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                              initWithGraphPath:@"me/friends"
                              parameters:@{@"fields": @"fields=id, first_name, last_name, birthday, gender, picture, devices"}
                              HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    if (error == nil) {
        NSArray* friends = [result objectForKey:@"data"];
    } else {
        NSLog(@"Error: %@ %@", error, [error userInfo]);
    }
}];

这是我得到的错误:

2016-05-08 00:07:12.610 App2Gift[48103:676830] Failed getting friend list
2016-05-08 00:07:12.610 App2Gift[48103:676830] Error: Error Domain=com.facebook.sdk.core Code=8 "(null)" UserInfo={com.facebook.sdk:FBSDKGraphRequestErrorGraphErrorCode=100, com.facebook.sdk:FBSDKGraphRequestErrorParsedJSONResponseKey={
    body =     {
        error =         {
            code = 100;
            "fbtrace_id" = "G3OpyiU/JKs";
            message = "(#100) Unknown fields: fields=id.";
            type = OAuthException;
        };
    };
    code = 400;
}, com.facebook.sdk:FBSDKGraphRequestErrorHTTPStatusCodeKey=400, com.facebook.sdk:FBSDKErrorDeveloperMessageKey=(#100) Unknown fields: fields=id., com.facebook.sdk:FBSDKGraphRequestErrorCategoryKey=0} {
    "com.facebook.sdk:FBSDKErrorDeveloperMessageKey" = "(#100) Unknown fields: fields=id.";
    "com.facebook.sdk:FBSDKGraphRequestErrorCategoryKey" = 0;
    "com.facebook.sdk:FBSDKGraphRequestErrorGraphErrorCode" = 100;
    "com.facebook.sdk:FBSDKGraphRequestErrorHTTPStatusCodeKey" = 400;
    "com.facebook.sdk:FBSDKGraphRequestErrorParsedJSONResponseKey" =     {
        body =         {
            error =             {
                code = 100;
                "fbtrace_id" = "G3OpyiU/JKs";
                message = "(#100) Unknown fields: fields=id.";
                type = OAuthException;
            };
        };
        code = 400;
    };
}

使用 parameters 运行相同的操作:nil 有效,但不会返回所有需要的数据。

【问题讨论】:

    标签: ios facebook-sdk-4.x


    【解决方案1】:

    经过测试和工作,具有以下权限:

    loginView.readPermissions = @[@"public_profile", @"email", @"user_friends"];

    NSString *path = [NSString stringWithFormat:@"/me/friends"];
    
    FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                                 initWithGraphPath:path
                                 parameters:@{@"fields": @"id, name, picture, devices"}
                                 HTTPMethod:@"GET"];
    [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) 
    {
    
    }];
    

    【讨论】:

      【解决方案2】:

      在 v2.0 的 Graph API 中,调用 /me/friends 会返回此人也在使用该应用的朋友。

      另外,在 v2.0 中,您必须向每个用户请求 user_friends 权限。 user_friends 不再默认包含在每次登录中。每个用户必须授予 user_friends 权限才能出现在对 /me/friends 的响应中。有关详细信息,请参阅 Facebook 升级指南

      【讨论】:

      • 感谢 nerowlfe,但我仍然没有得到您的答案与我得到的错误之间的联系。另外,我想获取我的好友列表(这不是 Facebook api 中最琐碎的请求之一),我该怎么做?
      猜你喜欢
      • 2011-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多