1

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;
    };
}

nilと同じようにパラメータを指定して実行すると機能しますが、必要なすべてのデータが返されるわけではありません。

4

2 に答える 2

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) 
{

}];
于 2016-05-09T22:37:42.187 に答える
0

Graph API の v2.0 では、/me/friends を呼び出すと、アプリを使用しているその人の友達が返されます。

さらに、v2.0 では、各ユーザーに user_friends パーミッションを要求する必要があります。user_friends は、すべてのログインにデフォルトで含まれなくなりました。/me/friends への応答に表示するには、各ユーザーが user_friends パーミッションを付与する必要があります。詳細については、Facebook アップグレード ガイドを参照してください。

于 2016-05-07T21:29:52.647 に答える