久しぶりに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アプリを作る
- https://developers.facebook.com/ へログイン
- アプリを作る
- アプリの設定
- アプリドメインに hoge.com を追加
- アプリID、app secret を記録
- プラットフォームを追加 から、ウェブサイト を選択する。サイトURLに https://hoge.com を追加 (不要?)
- 左のメニューの「Facebookログイン」をクリックし、有効なOAuthリダイレクトURIに、 https://hoge.com/callback.php と入力し、保存
- アプリアイコンやプライバシーポリシーのURL、サービス規約のURLは必須ではないが、他のpermissionを使う場合は必須となる(申請時にチェックされる)
- アプリを公開する。左のメニューの「アプリレビュー」をクリックし、「**を公開しますか?」を はい に変更
これで、Facebookアプリの作成と設定は完了。
試す
- https://hoge.com/index.php の、ログインリンクをクリック
- Facebookで認証のdialogが出るので、許可する
- 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 など)。その場合は、
- アプリレビュー をクリックし、「現在の申請」の右にある「+アイテムを追加」をクリック
- 使いたいpermissionをチェックし、「アイテムを追加」をチェック
- 「審査に送信するまえに〜〜」の項目をクリアし、「審査に送信」をクリック
- どのようにアプリを使うのか、説明文を入力する
- 数日で結果が返ってくる。アラートから確認できる。
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を上書きすれば良い。
未検証だが、これにさらに manage_pages permissionを付けると、tokenがexpireしなくなるらしい?
https://ameblo.jp/mrhrmc/entry-11531015370.html