web-dev-qa-db-ja.com

Facebook Graph APIを使用してすべてのユーザーフレンドを取得-Android

私は、アプリケーションにログインしたユーザーのすべての友人を取得しようとしています。

このAPIは使用できません[友人]:

https://developers.facebook.com/docs/graph-api/reference/v2.0/user/friends

このAPIは、リクエストを行ったアプリを使用した友人のみを返すためです。

だから私はこのAPIを見つけました[フレンドリスト]:

https://developers.facebook.com/docs/graph-api/reference/v2.0/friendlist

この回答に従ってください 、友だちリストを取得しました。

しかし、フレンドリストのメンバーを取得しようとすると、空のリストが表示されます。

new Request(
            session,
            "/2692926356774/members",
            null,
            HttpMethod.GET,
            new Request.Callback()
            {
                public void onCompleted(Response response)
                {
                    /* handle the result */
                    Log.e(LOG_TAG,"Members: " + response.toString());
                }
            }
    ).executeAsync();

2692926356774は私のAcquaintances list idで、同じ結果のIDをいくつか試しました。

50
David

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

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

/me/friendlistsエンドポイントとuser_friendlistsパーミッションは、あなたが望んでいるものではありません。このエンドポイントは、ユーザーの友達を返しません-ユーザーが友達を整理するために作成したリストにアクセスできます。これらの各リストの友人は返されません。このAPIと権限は、Facebookに公開する機会を人々に与えるときに、カスタムプライバシーセレクターをレンダリングできるようにするのに役立ちます。

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

  1. あなたの人々があなたのアプリを使用してFacebookに公開するストーリーの中で彼らの友人にタグを付けたい場合/me/taggable_friends AP​​Iを使用できます。 このエンドポイントの使用にはFacebook によるレビューが必要であり、ユーザーが投稿にタグ付けできるようにするために友人のリストをレンダリングする場合にのみ使用する必要があります。

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

それ以外の場合、アプリはユーザーの友達の完全なリストを取得できなくなります(user_friends権限を使用してアプリを明確に承認した友達のみ)。

友人がアプリを使用するように友人を招待できるようにしたいアプリの場合は、 Send Dialog on Web または新しい Message Dialog on iOSAndroid

83
Simon Cross