0

私がしたいのは、会社のウェブサイトの Facebook ページから最新の 3 つの投稿を表示することだけです。これは現在、facebooks グラフ API エクスプローラーから生成できる access_token を使用している私のコードです。

<?php
$token = 'AAACfoqFEeZC0BAB9I7MpVUNXNQADQA8WCzBngUZAjCjZCDHZCi4kIDFDl3cQjLZCndgSyp9talZA4ERCfS14iMZAIQa2DuAEfHUYZAr0qlDYKwZDZD';
$feed = file_get_contents('https://graph.facebook.com/mypageidhere/posts?fields=message&limit=3&access_token='.$token);
$json = json_decode($feed);

foreach($json->data as $update) {

        echo $update->message.'<br /><hr />';   

}
?>

アクセストークンの有効期限が切れることを除けば、これはうまく機能します。ユーザーがサイトにログインしたり、そのようなことをしたくありません。私は Facebook API のドキュメントを読みましたが、かなりひどいもので、役に立ちませんでした。生涯アクセス トークンを取得する方法や、access_token をまったく使用しない方法はありますか?

4

2 に答える 2

0

以前はオフライン アクセスを要求する方法がありましたが、廃止されたようです。詳細はこちらhttps://developers.facebook.com/roadmap/offline-access-removal/

于 2013-03-28T15:25:51.710 に答える
0

誰かが私が見つけた解決策に興味があるなら、ここにあります。Facebookのphp/sdkを使用しました

require_once "facebook-php-sdk/src/facebook.php";

$facebook = new Facebook(array(
  'appId'  => '<YOUR APP ID>',
  'secret' => '<YOUR SECRET>'
));

$query = 'SELECT post_id, message, permalink, likes, type, created_time FROM stream WHERE source_id = <PAGE ID> AND actor_id = <PAGE ID> LIMIT 3';
$facebook_data = $facebook->api(array(
                           'method' => 'fql.query',
                           'query' => $query,
                        ));

最初は空の配列が返されましたが、少しトラブルシューティングを行った後、ページのプライバシー設定を微調整して年齢制限を削除する必要があることに気付きました。その後、ページはすべての人に表示され、このソリューションは完全に機能しました.

于 2013-04-01T21:39:33.490 に答える