3

URL https://graph.facebook.com/me/friends?access_token= ...を使用して友達のリストにアクセスすると、友達のリストが表示されます。これはプログラムでも実行できます。

さて、友達のIDを取得して上記のURLの「me」に置き換え、ブラウザに貼り付けると、友達の友達が表示されます。HTTP 400エラーが発生するため、プログラムでこれを行うことはできません。

プログラムではなくURLを貼り付けることでこれが可能になる理由を誰かが知っていますか?

4

2 に答える 2

3

FacebookAPIを使用して「友達の友達」を取得することはできません。

たとえば、GraphAPIExplorerで単純な/me/ friendsを試してみてください。これは、正常に機能するはずです。次に、そこにあるIDの1つを取得し、FRIEND_ID / friendsで同じことを試してみると、次のようになります。

{
  "error": {
    "message": "(#604) Can't lookup all friends of FRIEN_ID. Can only lookup for the logged in user or the logged in user's friends that are users of your app.", 
    "type": "OAuthException", 
    "code": 604
  }
}

エラー自体は非常に単純で、問題が何であるかを正確に説明しています。なぜそれが400エラーコードに変換されるのかは不明です。


編集

ブラウザにも「友達の友達」が表示されません。これが機能する理由は(おそらく)友達をチェックするユーザー(USER_ID / friends)がアクセスしたアプリをインストールしたためです。トークンは、そのURLに到達した方法から、アプリが「Test_console」であると想定しています。

確認方法は?URL(USER_ID / friends?access_token = xxxxx)からアクセストークンをコピーし、Facebookデバッガーに移動して、テキストフィールドにトークンを貼り付け、[デバッグ]をクリックすると、アプリケーションに関する情報が表示されます。

チェックしたユーザーはおそらくそのアプリを「インストール」しています。他のユーザーをチェックすると、そのアプリを「インストール」していないユーザーに到達したときにエラーが発生します。

これがあなたのためにそれを明らかにすることを願っています。

于 2012-04-18T07:33:53.690 に答える
0

アプリケーションを使用している友達(限定)の友達ができました。私も同じ問題を抱えていました。質問に答えるのは非常に遅いですが、それは誰かを助けるでしょう。それがこの質問に答える理由です。

アプリユーザーの友達を作ることができます。

$fb_id=友達の友達が必要なユーザーID。

このfqlクエリを試してください。

$ 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))";

次の要件が必要です。

  1. あなたの友人はアプリケーションを使用している必要があります。
  2. アプリケーションread_stream、publish_stream、publish_checkinsからの許可。
于 2012-06-05T06:00:10.843 に答える