最終更新日:
公開日:
レシピ
Facebook PHP向けSDK
Facebookページのタイムライン(フィード)を取得
GraphAPIを使って、Facebookページに投稿されたタイムライン(フィード)を取得します。
この記事のポイント
- Facebookページの投稿データを取得する
- 取得するデータをパラメータで条件指定する
目次
GraphAPI /page/feed
今回はSDKからGraphAPIに用意されている「/page/feed」を呼び出し、Facebookページの投稿データを取得します。
投稿のメッセージや投稿された時間といった基本データから、投稿者の情報や一緒に投稿された画像など関連データを色々取得することが可能です。
PHP向けSDKの基本的な使い方については、「Facebookページの基本データを取得」をご覧ください。
投稿データを取得
まずは「/page/feed」を使って、基本データのみを取得してみましょう。
次のコードを使用します。
クラスを初期化するときに渡す情報は適宜置き換えてください。
また、今回はテスト用にGrayCodeのFacebookページから情報を取得することを前提とします。
コード例
<?php
require_once 'php-graph-sdk-master/src/Facebook/autoload.php';
$fb = new Facebook\Facebook([
'app_id' => 'アプリID',
'app_secret' => 'App Secret',
'default_graph_version' => 'v2.7',
'default_access_token' => 'アプリ用アクセストークン'
]);
try {
$res = $fb->get('/graycodepage/feed');
} catch( Facebook\Exceptions\FacebookSDKException $e) {
var_dump($e);
exit();
}
var_dump($res->getDecodedBody());
取得したデータの出力例
投稿データを配列として受け取ることができます。
「data」中にある投稿データを1つずつ見ていくと、「内容テキスト」「投稿日時」「ID」が取得できていることが分かります。
fieldsパラメータを使ってみる
基本的な投稿データは取得できたので、次はfieldsパラメータを指定してみます。
ここでは、「投稿名」「投稿者」「内容テキスト」「投稿画像」を取得していきます。
先ほどのコードから、get関数の指定にfieldsパラメータの指定のみ追加して実行します。
コード例
$res = $fb->get('/graycodepage/feed?fields=name,from,message,picture');
指定したパラメータの意味は次のようになります。
- name – 投稿名
- from – 投稿者データ(配列)
- message – 投稿内容
- picture – 画像リソースのURL
指定できるパラメータの一覧は公式リファレンス「Post」の「Fields」で参照できます。
Post – Facebook GraphAPIリファレンス(英語)
データの取得数を指定
投稿データの取得件数は初期設定だと25件ですが、limitパラメータで調整可能です。
先ほどのコードにlimitパラメータを追加して実行します。
fieldsパラメータの後ろに追加するので、「&」で区切って指定してください。
ここでは投稿を1件だけ取得する指定にします。
コード例
$res = $fb->get('/graycodepage/feed?fields=name,from,message,picture&limit=1');
limitパラメータは1件〜最大100件まで指定可能です。
実際の使い方は1ページ辺りの表示件数を指定し、投稿データと一緒に渡されるpaging配列の「previous」「next」を使ってページングを実装します。
以上、GraphAPIの「/page/feed」を使ったFacebookページのタイムラインデータ取得方法でした。
こちらの記事は役に立ちましたか?
コメントありがとうございます!
運営の参考にさせていただきます。
ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。