Facebook Graph API v2.0+ - /me/friends は空を返すか、または私のアプリケーションを使用している友達のみを返します 質問する

Facebook Graph API v2.0+ - /me/friends は空を返すか、または私のアプリケーションを使用している友達のみを返します 質問する

Graph API v2.0 を使用して友人の名前と ID を取得しようとしていますが、データが空で返されます。

{
  "data": [
  ]
}

v1.0 を使用していたときは、次のリクエストですべて正常でした。

FBRequest* friendsRequest = [FBRequest requestForMyFriends];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,
                                              NSDictionary* result,
                                              NSError *error) {
    NSArray* friends = [result objectForKey:@"data"];
    NSLog(@"Found: %i friends", friends.count);
    for (NSDictionary<FBGraphUser>* friend in friends) {
        NSLog(@"I have a friend named %@ with id %@", friend.name, friend.id);
    }
}];

でも今は友達ができない!

ベストアンサー1

Graph API のバージョン 2.0 では、呼び出すと、/me/friendsそのアプリを使用しているユーザーの友達が返されます。

さらに、v2.0 では、user_friends各ユーザーから の許可を要求する必要があります。は、すべてのログインにデフォルトで含まれなくなりました。への応答に表示されるには、user_friends各ユーザーが の許可を与える必要があります。user_friends/me/friendsFacebook アップグレードガイドより詳細な情報をご覧いただくか、以下の概要をご覧ください。

アプリを使用していない友達のリストにアクセスするには、次の 2 つのオプションがあります。

  1. 友達にタグ付けできるようにしたい場合あなたのアプリを使用して Facebook に公開されるストーリーでは、API を使用できます/me/taggable_friendsこのエンドポイントの使用にはFacebookによる審査が必要ですユーザーが投稿で友達をタグ付けできるように、友達のリストをレンダリングする場合にのみ使用する必要があります。

  2. アプリがゲームであり、ゲームがFacebook Canvasをサポートしている場合/me/invitable_friendsエンドポイントを使用してレンダリングすることができますカスタム招待ダイアログ、このAPIによって返されたトークンを標準のリクエストダイアログ。

その他の場合、アプリはユーザーの友達の完全なリストを取得できなくなります (権限を使用してアプリを明示的に承認した友達のみを取得できますuser_friends)。Facebook 社はこれを「意図的」であると確認しました。

友達を招待してアプリを使えるようにしたいアプリの場合は、Web 上の送信ダイアログまたは新しいiOS のメッセージダイアログそしてアンドロイド

更新: Facebook はこれらの変更に関する FAQ をここに公開しました:https://developers.facebook.com/docs/apps/faq開発者が友人などを招待するために利用できるすべてのオプションについて説明します。

おすすめ記事