logo

2011年2月アーカイブ

Facebookページにperlで自動投稿してみたのでその時のメモ。
まずはfacebookとのやり取りをひも解いてみた。これをPHPやPerlにすればよし
いくつかはまったところがあったのでメモ。


1.Facebookアプリの登録
まずはアプリ登録。

Developers.png

右の『Set Up New App』から新規登録しましょう。

適当に埋めてサイトURLとドメインだけ今回アクセスするサーバのものにしておきましょう。
あとで指定したcallbackURLが同じドメインでないと怒られます。

2.png
アプリIDとアプリの秘訣(?)を控えましょう。


2.OAuth認証でcode取得
次にOAuth認証するため下記のURLに情報を一緒に投げてみましょう。
こんな感じでアクセス。

https://graph.facebook.com/oauth/authorize?client_id=アプリID&redirect_uri=登録したドメインの適当なコールバックURL&scope=offline_access,publish_stream,user_status,read_stream,status_update,manage_pages

scopeは下記のアプリ承認時に出る権限です。
manage_pagesがユーザの管理してるページに自由にアクセスできる権限かな。
これがあればユーザに紐づいたFacebookページにアクセスできる。

re.png


コールバックURL?code=1234567891234567

こんな感じでコールバックURLにcodeが帰ってくるので
codeをメモ。


3.ユーザのアクセストークンを取得
次はcodeを使ってユーザのアクセストークンを取得します。
このトークンを使えば、ユーザに紐づいた情報が取得できます。
下記にアクセス。

https://graph.facebook.com/oauth/access_token?
     client_id=アプリID&redirect_uri=コールバックURL&
     client_secret=アプリの秘訣&code=さっきのコード

そうすると
コールバックURL?access_token=ユーザアクセストークン

とかえってくるのでメモ。

4.Facebookページのアクセストークンを取得
最後にユーザのアクセストークンを使って該当するFacebookページのアクセストークンを取得します。
これがあれば外部からFacebookページへの投稿が可能に!

https://graph.facebook.com/me/accounts?access_token=ユーザアクセストークン

これにアクセスすると下記のようにJSON形式でユーザに紐づいたFacebookページやらアプリやらの
idとaccess_tokenがでます。

json.png
Categoryが『Community』となっているものがFacebookページなので、そのaccess_tokenをメモ
投稿したいFacebookページのURLの数字を確認しておきましょう。FacebookページのURLに含まれてる数字がIDなので。


5.投稿
あとは下記のようにメモったFacebookページのaccess_tokenをメッセージと一緒にポストしてみよう

<form action="https://graph.facebook.com/FacebookページのID/feed" method="post">
    <input type="hidden" name="access_token" value="アクセストークン" />
    <input type="hidden" name="picture" value="http://marooon.com/img/logo.gif'" />
    <input type="text" name="message" value="hogehoge" />
</form>
こんなかんじ。

試しにポストしてみたらちゃんと投稿されました。
画像を投稿したい場合はpictureで画像のURLを投げてやればOK

あとはこの流れをプログラムに!



JavaScript Journal | JavaScript総合情報サイト

このアーカイブについて

このページには、2011年2月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2011年1月です。

次のアーカイブは2011年3月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。