0

Facebook が提供する Open Graph API を使用する PHP コードを取得しようとすると、少し問題が発生します。

URL を受け取り、Facebook コメント プラグインを使用して作成されたそのページのコメント数を返す PHP コードがあります。

コードが機能することはわかっていますが、小さな問題があります。

コードを試してみると、情報が表示されません。Facebook が提供する API Explorer にチェックインすると、必要な情報が表示されます。唯一の違いは、API エクスプローラーを使用する場合にアクセス トークンが使用されることです。

私が実行しているコードは、同じドメインのページのグラフ データを取得しようとしています。ページにいくつのコメントが作成されたかを誰かに伝えるためだけに承認を求めるのは意味がないため、これはアプリケーションの承認を求めるものではありません。

私の質問は、以下のコードにアクセス トークンを含める方法です。

function fb_comment_count($url = '') {
$filecontent = file_get_contents('https://graph.facebook.com/?ids=' . $url);
$json = json_decode($filecontent);
$count = $json->$url->comments;
if ($count == 0 || !isset($count)) {
    $count = 0;
}
echo $count;
}

現在、唯一の問題は、このhttps://graph.facebook.com/?ids=' にあります。$urlは空を返していますが、同じ URL を使用すると API Explorer に適切な情報が表示されます。アクセストークンをこのどこかに含めることはできますか、それとも何か不足していますか?

4

2 に答える 2

1

このデータをクエリするには、アクセス トークンが必要です。

ただし、ユーザーに認証を求めるのではなく、アプリ アクセス トークンを使用できます。

ここで生成する方法を参照してください: http://developers.facebook.com/docs/authentication/applications/

于 2012-05-22T10:55:53.410 に答える
1

私は実際にこのコードを使用することになりました。これにより、単なるコメント数以上のものを取得できます (Facebook PHP SDK を使用します)。

<?php
// Stats taken from link_stats table
// Documentation: http://developers.facebook.com/docs/reference/fql/link_stat/
function FBLinkStats($url,$type){

$fbconfig['appid' ]  = "###########";
$fbconfig['secret']  = "###########";
include_once "facebook.php";

$facebook = new Facebook(array(
    'appId'  => $fbconfig['appid' ],
    'secret' => $fbconfig['secret'],
    'cookie' => true
));

$fql = "SELECT url, normalized_url, share_count, like_count, comment_count, total_count, commentsbox_count, comments_fbid, click_count FROM link_stat WHERE url = '".$url."' ";
$param  =   array(
    'method'    => 'fql.query',
    'query'     => $fql,
    'callback'  => ''
);
$fqlResult   =   $facebook->api($param);
return $fqlResult[0][$type];
}
?>

この関数は、情報を取得しているページの URL と返される統計の 2 つの変数を受け取ります

于 2012-05-22T05:04:40.087 に答える