https://github.com/facebook/facebook-php-sdk/zipball/masterにアクセスして、最新の SDK があることを確認してください。
解凍すると、下図のようなレイアウトになります
/facebook-php-sdk
index.php
ブラウザで友達の数を表示するために使用されているファイルの index.php の場所
PHP ファイルの先頭に SDK を含めます。
require('sdk/src/facebook.php');
https://developers.facebook.com/appsに移動し、アプリを選択してアプリ ID とアプリ シークレットを取得し、PHP ファイル内にインスタンスを作成します。
$facebook = new Facebook(array(
'appId' => 'YOUR_APP_ID_HERE',
'secret' => 'YOUR_SECRET_HERE',
));
次に、$user
データを取得して、現在のユーザーが認証されていることを確認します
$user = $facebook->getUser();
通話を送信する前に、認証が正しいかどうかを確認してください
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
/me/statuses
ドキュメントへの呼び出しは、 https://developers.facebook.com/docs/reference/api/user/#statusesで入手できます。
$statuses = $facebook->api('/me/statuses');
これは、現在のすべてのユーザー ステータス メッセージのhttp://developers.facebook.com/docs/reference/api/status/で定義された構造ステータス メッセージの配列を返す必要があります。
次に、トップ フレンドを決定するものを決定する必要があります
オプション 1 を選択し、それぞれの重みを 1 にします。つまり、いいねとコメントは、友達の数を決定するための値と同じです。
$friendArray のように、これを保持する変数を作成します。
次に、すべてのステータス メッセージを繰り返し処理しますが、JSON 応答全体はラップされたdata
{
"data": [
access $statuses['data']
、 foreach はすべてのステータスメッセージをstatus
アイテムとして提供します
foreach($statuses['data'] as $status){
このループ内で、すべてのいいねを繰り返し、表示される各 ID の値を増やします
foreach($status['likes']['data'] as $likesData){
$frid = $likesData['id'];
$friendArray[$frid] = $friendArray[$frid] + 1;
}
このループ内ですべてのコメントを繰り返し、表示される各 ID の値を増やします
foreach($status['comments']['data'] as $comArray){
$frid = $comArray['from']['id'];
$friendArray[$frid] = $friendArray[$frid] + 1;
}
外側のループの最後には、スコアを持つforeach($statuses['data'] as $status){
配列が必要です。$friendArray
asort
http://www.php.net/manual/en/function.asort.phpを呼び出して配列をソートすると、上位 x スコアをループできます。
あなたが示したコードは関数ではなく、実際には右中括弧がありません。関数ではないため、実際には何も返しません。
警告:は、すべてのメッセージを繰り返すためにページ呼び出しを/me/statuses
取得する必要がある呼び出しごとに限られた一連のステータス メッセージのみを返します。返される上位の友達は、上で作成した制限にのみ基づいています。previous