botプログラムからFacebookページにAPI経由で投稿するためのアクセストークンを取得する
自分の作っているQMACloneにはFacebookのページに問題を投稿する機能があるのですが、トークンの期限が切れたために動かなくなっていました。
トークンの取得方法を調べ直しましたので備忘録として書いておきたいと思います。
短期間用(1〜2時間)アクセストークンの取得
以下のURLにアクセスして短期間用のアクセストークンを取得します。アクセストークンはリダイレクト先のURLのフラグメントの部分に書かれます。
https://www.facebook.com/dialog/oauth? client_id=[App ID/API Key]& redirect_uri=https://www.facebook.com/connect/login_success.html& response_type=token& scope=publish_stream,manage_pages
長期間用(60日)アクセストークンの取得
以下のURLにアクセスして短期間用のアクセストークンを長期間用のアクセストークンに交換します。
https://graph.facebook.com/oauth/access_token? client_id=[App ID/API Key]& client_secret=[アプリのシークレットキー]& grant_type=fb_exchange_token& fb_exchange_token=[短期間用アクセストークン]
ページ投稿用アクセストークンの取得
以下のURLにアクセスしてページ投稿用のアクセストークンを取得します。
https://graph.facebook.com/me/accounts?access_token=[長期間用アクセストークン]
以上で60日間くらい使えるアクセストークンが手に入ります。このアクセストークンを使用してGraph API経由でページに投稿することができます。
リンク
- Authentication - Facebook開発者 https://developers.facebook.com/docs/authentication/
- Removal of offline_access permission - Facebook開発者 https://developers.facebook.com/roadmap/offline-access-removal/
- Graph APIでFacebookページに投稿すると、「ページからの投稿」ではなく「個人ユーザからの投稿」として表示されてしまう - QA@IT http://qa.atmarkit.co.jp/q/46