25

Facebook SDKの最新バージョンを使用しています(これにより、「グラフAPI」と呼ばれるものに接続できますが、よくわかりません)。FacebookのサンプルコードをFacebookに接続できるように調整しましたが、それは機能します...しかし、友達のリストを取得できません。

$friends = $facebook->api('friends.get');

これにより、次のエラーメッセージが生成されます。「致命的なエラー:キャッチされていないOAuthException:(#803)要求したエイリアスの一部が存在しません:friends.getが543行目の/mycode/facebook.phpにスローされました」

それがなぜなのか、それが何を意味するのかはわかりません。誰かが友達のリストを取得するための正しい構文(最新のFacebook API用)を教えてもらえますか?("$ friends = $ facebook-> api-> friends_get();"を試しましたが、別のエラーが発生しました。 "致命的なエラー:/mycode/example.phpの非オブジェクトでメンバー関数friends_get()を呼び出します。行129"。)

コードのこの時点の前に、問題がないことを確認できます。有効なセッションでFacebookに接続しており、情報を取得して画面にダンプできます...つまり、このコードは失敗した友達の前に完全に実行されます.get call:

$session = $facebook->getSession();
if ($session) {
    $uid = $facebook->getUser();
    $me = $facebook->api('/me');
}
print_r($me);
4

11 に答える 11

58

私はこれがあなたが望むものだと思います:

$friends = $facebook->api('/me/friends');
于 2010-09-30T23:38:39.303 に答える
23

これは、Facebookから友達を取得するためのPHPコードのライブバージョンです。

<?php
    $user = $facebook->getUser();


    if ($user) {
        $user_profile = $facebook->api('/me');
        $friends = $facebook->api('/me/friends');

        echo '<ul>';
        foreach ($friends["data"] as $value) {
            echo '<li>';
            echo '<div class="pic">';
            echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>';
            echo '</div>';
            echo '<div class="picName">'.$value["name"].'</div>'; 
            echo '</li>';
        }
        echo '</ul>';
    }
?>
于 2012-04-02T23:49:37.610 に答える
12

@nfvsのような友達を作るのは良い方法です。これは、属性idとname(id順に)を持つすべての友達を含む多次元配列を出力します。あなたはこのような友達の写真を見ることができます:

foreach ($friends as $key=>$value) {
    echo count($value) . ' Friends';
    echo '<hr />';
    echo '<ul id="friends">';
    foreach ($value as $fkey=>$fvalue) {
        echo '<li><img src="https://graph.facebook.com/' . $fvalue->id . '/picture" title="' . $fvalue->name . '"/></li>';
    }
    echo '</ul>';
}
于 2010-10-20T14:31:26.353 に答える
7

Graph APIのv2.0を使用して、この質問に出くわした人に注意してください。これはもう機能しません。v2.0では、/ me / friendsを呼び出すと、アプリを使用している人の友達のリストのみが返されます。

  • 現在のユーザーの友達を表示するには、user_friends権限を持つユーザーアクセストークンが必要です。
  • これにより、リクエストを行ったアプリを(Facebookログイン経由で)使用した友達のみが返されます。
  • その人の友達がuser_friends権限を拒否した場合、その友達はこの人の友達リストに表示されません。
于 2014-05-30T08:12:52.223 に答える
3

RESTエンドポイントを使用する場合は、

$friends = $facebook->api(array('method' => 'friends.get'));

それ以外の場合、グラフAPIを使用している場合は、

$friends = $facebook->api('/me/friends');
于 2011-08-10T14:56:58.543 に答える
3

Facebook sdkの最近のバージョンでは、Facebookは、セキュリティ上の理由から1人の友達リストにアクセスできる機能を無効にしています...詳細については、ドキュメントを確認してください...

于 2015-05-22T11:16:22.673 に答える
2

代わりにFQLを使用してください。これはSQLに似ていますが、Facebookのデータテーブル用であり、作成したいデータクエリを簡単にカバーします。これらの/xx/ xxx / xx呼び出しをすべて使用する必要はありません。関心のあるテーブルと列を知っているだけで、

$myQuery = "SELECT uid2 FROM friend WHERE uid1=me()";
$facebook->api( "/fql?q=" . urlencode($myQuery) )

http://developers.facebook.com/docs/reference/fql/の優れたインタラクティブな例

于 2011-11-18T01:47:49.330 に答える
0

CodeIgniter OAuth2 / 0.4.0 Sparksを使用して、

Auth.phpファイルで、

$user = $provider->get_user_info($token);

$friends = $provider->get_friends_list($token);
print_r($friends);

そして、プロバイダーの下のFacebook.phpファイルに、次の関数を追加します。

    public function get_friends_list(OAuth2_Token_Access $token)
    {
            $url = 'https://graph.facebook.com/me/friends?'.http_build_query(array(
                    'access_token' => $token->access_token,
            ));
            $friends = json_decode(file_get_contents($url),TRUE);

            return $friends;
    }

prints the facebenter code hereook friends.
于 2013-05-21T10:37:42.297 に答える
0
friends.get

友達のリストを取得する機能です

そして、はい、これは最高です

    $friends = $facebook->api('/me/friends');

    echo '<ul>';
    foreach ($friends["data"] as $value) {
        echo '<li>';
        echo '<div class="pic">';
        echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>';
        echo '</div>';
        echo '<div class="picName">'.$value["name"].'</div>'; 
        echo '</li>';
    }
    echo '</ul>';
于 2014-01-02T15:03:48.550 に答える
0

https://graph.facebook.com/v1.0/me/friends?limit=${limit}&access_token=${accessToken}

このAPIは私のために働いたこれを試してみてください

于 2021-06-26T17:21:29.980 に答える
-3

header('Content-type:text / html; charset = utf-8');

ページに入力します。

于 2011-05-16T19:12:26.070 に答える