9

API 呼び出しを介して友達の友達を取得したいのですが、それを実行しようとすると、次の例外が発生します。

    {
   "error": {
      "type": "OAuthException",
      "message": "(#604) Can't lookup all friends of .... Can only lookup for the logged in user (...), or friends of the logged in user with the appropriate permission"
   }
}

アクセスしようとしているURLは、

https://graph.facebook.com/friend_id/friends?access_token=access_token

次のような拡張アクセス許可を取得しています。

<fb:login-button perms="user_likes,friends_likes"></fb:login-button>

ここで何がうまくいかないのか教えてください。それとも、友達の友達にアクセスできないということですか?

4

6 に答える 6

6

現在、ユーザーの友達の友達を表示できる拡張アクセス許可はありません。「*_likes」パーミッションは、ユーザーが「いいね!」した Facebook ページを表示するだけです。

ユーザーの各友達の友達を 1 人ずつ繰り返しフェッチしてキャッシュすることは可能かもしれませんが、各友達のアクセス トークンがなければ、パブリック データしかフェッチできません。

于 2010-09-29T17:35:36.090 に答える
3

友達の友達ができました(限定)。私は同じ問題を抱えていました。質問に答えるのは非常に遅いですが、誰かを助けるでしょう. だからこそ、この質問に答えます。

アプリユーザーである友達の友達を得ることができます。$fb_id= 友達の友達が要求したユーザー ID。

$query="SELECT uid, name, work_history FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 IN (SELECT uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = $fb_id ) and is_app_user=1) )"; $user_info=$facebook->api(array('method'=>'fql.query', 'query'=>$query));

@オーリー:

あなたはアプリケーションを通じてあなたの友達の友達を取得しています。そのため、友達が欲しい友達の許可が必要になります。つまり、あなたの友人はそのアプリケーションを使用しており、情報へのアクセスを許可しながら、それらの許可を受け入れている必要があります。そうしないと、友達の友達になれません。このクエリをテストしました。そして、それは正常に機能します。

"message": "(#604) Can't lookup all friends of .... Can only lookup for the logged in user (...), or friends of the logged in user with the appropriate permission"

このメッセージはよく説明しています。注意して読みなさい。

解決基準を理解していただければ幸いです。

于 2012-02-25T12:16:13.270 に答える
1

友達の友達を取得することはできません。プライバシー上の理由から許可されていません

以前に行った回避策は、すべてのユーザーの友達を独自のデータベースに保存することです。そうすれば、すべての異なるユーザーのフレンドリストを相互参照し、少なくとも、作成したアプリケーションを使用したフレンドのフレンドを取得できます。

重要な注意点として、このようなテーブルは、取得するユーザーの数に応じて、すぐにかなりの量になる可能性があります。

各ユーザーには平均で約 250 ~ 300 人の友人がいると考えられるため、このようなソリューションを選択する場合は、データベースを最適化するようにしてください。そうすれば、うまく機能するはずです。

于 2013-02-25T12:43:23.100 に答える
0

同じ問題が発生しました。少なくとも共通の友達を取得するには、古い REST API を使用する必要がありました。http://developers.facebook.com/docs/reference/rest/friends.getMutualFriends/ を参照してください

于 2012-01-02T18:07:59.317 に答える
-1

me/friends への Graph API 呼び出しを介して、現在のユーザーの友人を取得できます。有効な access_token が必要です。特別な拡張アクセス許可は必要ありません。Basic アクセス許可だけが必要です。注意点が 1 つあります。そのユーザーは、自分のフレンド リストを表示できるようにする必要があります。そのため、[プライバシー設定] > [Facebook で接続] には、[友達リストを表示] 設定があります。ユーザーがカスタム設定を選択し、「自分のみ」と言うを選択した場合、このエラーが発生します。

同様に、現在のユーザーが他のユーザーにフレンド リストの表示を許可しているが、プライバシー上の懸念からフレンドの 1 人がこれをシャットダウンした場合、データを表示できず、そのエラーが発生します。

説明したシナリオを確認できました。

于 2011-07-28T05:40:56.693 に答える
-3

残念ながら、私は FB API の経験がないため、具体的にお答えすることはできません。ただし、FB を使用すると、ユーザーは自分の友達が誰であるかを非表示にできると思います。彼らがこのセットを持っている場合、おそらくあなたは彼らの友達にまったくアクセスできないでしょう. コードを変更して、最初に特定のユーザーの権限を確認し、アクセスできる場合にのみ友人リストにアクセスできるようにします。ただし、ここで少し推測します。

于 2010-09-29T03:58:51.913 に答える