最新APIでFacebookの友達リストを取得
-
26-09-2019 - |
質問
使っています Facebook SDK の最新バージョン (よくわかりませんが、これにより「グラフ API」と呼ばれるものに接続できるようになります)。Facebook に接続できるように Facebook のサンプルコードを調整しましたが、それは機能します...しかし、友達のリストを取得できません。
$friends = $facebook->api('friends.get');
これにより、次のエラー メッセージが表示されます。"致命的な誤り:キャッチされない OAuthException:(#803) 要求したエイリアスの一部は存在しません:friends.get が /mycode/facebook.php の 543 行目にスローされます」
それがなぜなのか、それが何を意味するのかはわかりません。友達のリストを取得するための(最新の Facebook API 用の)正しい構文を誰か教えてくれませんか?(「$friends = $facebook->api->friends_get();」を試してみましたが、「致命的なエラー:」という別のエラーが発生しました。/mycode/example.php の 129 行目で、非オブジェクトのメンバー関数 friends_get() を呼び出します。)
コードのこの時点より前では、問題がないことが確認できます。有効なセッションで Facebook に接続しているので、情報を取得して画面にダンプすることができます...つまりこのコードは、friends.get 呼び出しが失敗する前に完全に実行されます。
$session = $facebook->getSession();
if ($session) {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
}
print_r($me);
解決
私はこれが何をしたいと思います:
$friends = $facebook->api('/me/friends');
他のヒント
このパスワード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>';
}
?>
@nfvsような友人を取得する良い方法ですについて説明します。これは、属性IDと名前(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>';
}
Graph API v2.0 を使用しているときにこの質問に遭遇した人は注意してください。これではもう機能しません。v2.0 では、/me/friends を呼び出すと、その人の友人のリストのみが返されます。 アプリも使う:
- 現在の人の友達を表示するには、user_friends 権限を持つユーザー アクセス トークンが必要です。
- これにより、リクエストを行ったアプリを (Facebook ログイン経由で) 使用した友人のみが返されます。
- その人の友人が user_friends 権限を拒否した場合、その友人はこの人の友人リストには表示されません。
あなたはRESTエンドポイントを使用したい場合は、
$friends = $facebook->api(array('method' => 'friends.get'));
あなたはグラフAPIを使用している他の場合には、使用し、
$friends = $facebook->api('/me/friends');
FacebookのSDKの最新バージョンでは、Facebookが...
の詳細を学ぶためにドキュメントをチェック...あなたは、セキュリティ上の理由にいくつかのいずれかの友達リストにアクセスできる機能を無効にしています使用FQLではなく、簡単にそのSQLのようなしかし、FacebookのデータテーブルのAとは、作るのが好き、データクエリyou'deをカバーしています。 あなたはちょうどあなたがinteresetedされたテーブルと列を知って、それら/ XX / XXX / XX呼び出しのすべてを使用する必要はありません。
$myQuery = "SELECT uid2 FROM friend WHERE uid1=me()";
$facebook->api( "/fql?q=" . urlencode($myQuery) )
グレートインタラクティブな例で http://developers.facebook.com/docs/reference/fql / の
使用CodeIgniterののOAuth2 / 0.4.0火花、
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.
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>';
ヘッダ( 'コンテンツタイプ:text / htmlの;のcharset = UTF-8');
あなたのページで入力します。