facebookページに外部からウォールに投稿する方法
facebookページに外部からウォールに投稿する方法を調べていたのでメモ。
1.facebookアプリの登録
アプリ登録をして、App IDとアプリの秘訣を取得。http://www.facebook.com/developers/
2.OAuth認証でcode取得
下記のURLのどちらかを使って、OAuth認証を行います。①https://graph.facebook.com/oauth/authorize?client_id=【App ID】&redirect_uri=【登録したドメインの適当なコールバックURL】&scope=offline_access,publish_stream,user_status,read_stream,status_update,manage_pages
②https://graph.facebook.com/oauth/authorize?client_id=【App ID】&redirect_uri=【登録したドメインの適当なコールバックURL】&scope=offline_access,publish_stream
どちらを選ぶかによって、ウォールの投稿者が違います。
①の場合だと、ユーザとして投稿される。
②の場合だと、facebookページとして投稿される。
OAuth認証が終わると、URLアドレスに【コールバックURL?code=xxxxxxxxxx】となって帰ってくる。
3.ユーザのアクセストークンを取得
2で取得したcodeを使ってユーザのアクセストークンを取得します。https://graph.facebook.com/oauth/access_token?client_id=【アプリID】&redirect_uri=【コールバックURL】&client_secret=【アプリの秘訣】&code=【2のコード】
アクセスすると、【コールバックURL?access_token=ユーザアクセストークン】となって帰ってくる。
4.ファンページのアクセストークンを取得
さっき取得したのは、ユーザのアクセストークン。必要なのはファンページのアクセストークンなので、それを取得します。
https://graph.facebook.com/me/accounts?access_token=ユーザアクセストークン
アクセスするとname、access_token、category、idの情報が2グループ程度表示されます。
『category』が『Application』になっていない方の『access_token』を使用します。
Applicationのアクセストークンを使用すると、アプリ側のウォールに投稿されてしまいます。
5.投稿
必要な情報がそろったので、下記サンプルのような感じでポストする。<form action="https://graph.facebook.com/ファンページのID/feed" method="post"> <input type="hidden" name="access_token" value="アクセストークン" /> <input type="hidden" name="picture" value="http://xxxxxxxx.xx/img/logo.gif" /> <input type="text" name="message" value="テストメッセージ" /> </form>