Facebookページのイベントフィードを取得する方法 php sdk v5, fb v2.10

Pocket

久しぶりにFacebook関連。数年前からだいぶSDKもGraph APIの仕様も変わったので、色々調べ直したメモ。

  • Facebook SDK for PHP (v5)
  • FacebookのAPIバージョン: v2.10

 

準備

サイトは https://hoge.com とする
PHP SDKをダウンロードする https://github.com/facebook/php-graph-sdk
hoge.com に、下記リンクと同様に index.php, callback.php, member.php を作成。
参考: http://c-geru.com/as_blind_side/2017/04/facebookapiphp.html
 

Facebookアプリを作る

  1. https://developers.facebook.com/ へログイン
  2. アプリを作る
  3. アプリの設定
    1. アプリドメインに hoge.com を追加
    2. アプリID、app secret を記録
    3. プラットフォームを追加 から、ウェブサイト を選択する。サイトURLに https://hoge.com を追加 (不要?)
    4. 左のメニューの「Facebookログイン」をクリックし、有効なOAuthリダイレクトURIに、 https://hoge.com/callback.php と入力し、保存
    5. アプリアイコンやプライバシーポリシーのURL、サービス規約のURLは必須ではないが、他のpermissionを使う場合は必須となる(申請時にチェックされる)
  4. アプリを公開する。左のメニューの「アプリレビュー」をクリックし、「**を公開しますか?」を はい に変更

これで、Facebookアプリの作成と設定は完了。
 

試す

  1. https://hoge.com/index.php の、ログインリンクをクリック
  2. Facebookで認証のdialogが出るので、許可する
  3. callback.php でログイン処理後、member.php へredirect.phpされるのを確認

あとは、member.php の内容をいじって、必要な情報を取得できるよう、調整する。
データを取得できるようになってからは、これを参考にデータを整理
https://developers.facebook.com/docs/php/api/5.0.0
 
Graph APIでできることは、UserのPermissionによって違うので、追加するには index.php の $permissions に入れる。
デフォルトでは、 email, public_profile, user_friends が使えるが、その他のPermissionについては、Facebookで申請して審査を通す必要がある(manage_page など)。その場合は、

  1. アプリレビュー をクリックし、「現在の申請」の右にある「+アイテムを追加」をクリック
  2. 使いたいpermissionをチェックし、「アイテムを追加」をチェック
  3. 「審査に送信するまえに〜〜」の項目をクリアし、「審査に送信」をクリック
  4. どのようにアプリを使うのか、説明文を入力する
  5. 数日で結果が返ってくる。アラートから確認できる。

Permission一覧はこちら https://developers.facebook.com/docs/facebook-login/permissions/?locale=ja_JP
 

余談:Token延長

上記一連の流れは、ログイン→tokenを取得→Graph APIを使う だが、tokenを別途取得して使えば、そのままGraph APIを使える。

$accessToken = $_SESSION['facebook_access_token'];
$fb->setDefaultAccessToken($accessToken);

となっている$accessTokenを上書きすれば良い。

FacebookのGraph Apiで利用するアクセストークンの取得方法について


未検証だが、これにさらに manage_pages permissionを付けると、tokenがexpireしなくなるらしい?
https://ameblo.jp/mrhrmc/entry-11531015370.html

Comments on this post

No comments.

Leave a Reply

Your email address will not be published. Required fields are marked *

Trackbacks and Pingbacks on this post

No trackbacks.

TrackBack URL