0

外部 Web ページの facebook から最新のファンページの更新を取得したいと思います。

問題は2つあるような…

1 つは、アクセス トークンが 1 時間後に期限切れになるようですが、永続的なアクセス トークンを取得する方法はありますか?

次に、ページの所有者による最後の 10 件の投稿 (「メッセージ」フィールドを含む投稿) の json 文字列を取得したいと考えています。

たとえば、「https://graph.facebook.com/stackexchange/posts?fields=message&limit=10」を使用すると、メッセージ フィールドを含まない行が返されます。これらをフィルタリングする方法はありますか?

おそらく、FQL クエリを使用してこれを取得する方法はありますか?

4

3 に答える 3

1

ページに制限がない場合は、永続的なアプリ アクセス トークンを使用してこのデータを取得できます。サーバー側 SDK のいずれかを使用している場合は、自動的に取得されます。

SDK を使用していない場合、または JavaScript で記述している場合は、ドキュメントの「アプリとしてログイン」セクションで説明されています。

この方法で取得したアクセス トークンは、アプリ シークレットを変更するまで保持されます。

ページに年齢制限や国制限がある場合、API 経由でデータを取得するにはユーザー アクセス トークンが必要です。TOS によると、各ユーザーを認証し、ページ所有者が設定した制限を満たしている場合にのみ結果を表示する必要があります。

ページが作成した最新の 10 件の投稿を取得するには、FQL を使用するのが最適です。このクエリを試してください:

SELECT created_time, message, attachment FROM stream WHERE 
   source_id = YOUR_PAGE_ID AND filter_key = "owner" AND message != "" LIMIT 10
于 2013-02-12T15:31:46.813 に答える
0

永続的なアクセストークンについて:あなたはアプリアクセストークンを探していると思います。続きを読む:https ://developers.facebook.com/docs/technical-guides/opengraph/publishing-with-app-token/

2番目の質問について:出力から、「メッセージ」キーが存在するかどうかを確認します。そうでない場合は、そのエントリを除外します。PHPには、そのことを行う関数array_key_existsがあります。

于 2013-02-11T06:45:36.670 に答える
0

Facebook ページ ( ) の管理者の 1 人にアプリ ( ) を承認してもらうことができます$pageId$fbAppId

<script>
    var oauth_url = 'https://www.facebook.com/dialog/oauth/';
    oauth_url += '?client_id=<?php echo $fbAppId; ?>';
    oauth_url += '&redirect_uri=' + encodeURIComponent('https://www.facebook.com/pages/null/<?php echo $pageId; ?>/?sk=app_<?php echo $fbAppId; ?>');
    oauth_url += '&scope=manage_pages'

    window.top.location = oauth_url;
</script>

彼らがそれを承認したら、取得した署名付きリクエスト ( $signedRequest = $facebook->getSignedRequest();) を使用して永続的なトークンをリクエストできます。

$url = 'https://graph.facebook.com/oauth/access_token?client_id=' . $fbAppId . '&client_secret=' . $appSecret . '&grant_type=fb_exchange_token&fb_exchange_token=' . $signedRequest['oauth_token'];

この URL を cURL して、結果の access_token を取得します。

$access_token = substr($response, strlen('access_token='));

DBに保存します。これにより、投稿を取得できます。

$graphUrl = '/' . $pageId . '/posts?access_token=' . $accessToken;
$posts = $this->facebook->api($graphUrl, 'GET');

この access_token の有効期限が切れるまで、私にはわかりません。

于 2013-02-11T17:31:14.750 に答える