Facebookのページ(ユーザーではない)からメッセージを取得するためのphpスクリプトを開発しています。私はそのページ (私のもの) にアクセスできるので、構成で何かを変更する必要がある場合は変更できます。
FacebookのグラフAPI WebページでFQLクエリを試してみましたが、うまくいきました。すべてのメッセージを含むファイルを取得します。
しかし、私のphpスクリプトでそれを試みるたびに失敗します。ローカルホストサーバーで試して、スクリプトを呼び出しています: "localhost/testServer/phpScript.php" パラメータを追加する必要があるかどうかわかりません。
多くの例とチュートリアルを確認しましたが、すべて似ていますが、私の場合は機能しません。
私はいつもこのメッセージで例外を受け取ります:
Fatal error: Uncaught Exception: 100: Requires user session thrown in C:\xampp\htdocs\testServer\base_facebook.php on line 1271
それを try/catch で囲み、取得したものを出力すると、getType() では例外であり、getResult() では配列であることがわかります。
私のコードは非常に単純です:
<?php
require_once("facebook.php");
//Get Facebook SDK Object
$config = array(
'appId' => '*******',
'secret' => '*******',
'cookie' => true,
);
$facebook = new Facebook($config);
//$fql = "SELECT message FROM status WHERE uid = 169070991963 ORDER BY time DESC";
$fql = "SELECT message FROM status WHERE uid = 169070991963";
//Create Query
$param = array(
'method' => 'fql.query',
'query' => $fql,
'access_token'=>'*******|******-*******',
'ext_perm' => "read_stream",
);
$result = $facebook->api($param);
print_r($result);
?>
appId、secret、access_token を削除しました。
ステータステーブルを使用してread_streamパーミッションについて何かを読みました。ただし、access_token および ext_perm タグを追加しても効果はありません。Web ページの uid は公開されているため、自分でコードをテストできるようにしておきます。
php fqlでこのクエリが出来なくても、同じ結果が得られるなら通常のAPIを使っても問題ありません。
私はこのスクリプトを実行するのに何日も費やしていますが、この問題で完全に迷っています。