ひまつぶし雑記帖

doncha.net制作・発行:KindleやiBooks、楽天kobo、BOOK☆WALKERで読む電子書籍

facebookのウォールに投稿するアプリ

2012/6/14 [00:20:39] (木) 天気

使い勝手がよくわからないし、プライバシーというか公開範囲もよくわからないし、妙にうっとーしーオススメされるので、すっかり放置のfacebook。正直なところ、なんか胡散臭くて、魅力を感じないんだけど、ユーザー数を考えるとちょっと調べておいたほうがいいような気がした。
で、この雑記帖のRSSをwallに投稿できればいいなあ、と。有名どころの、facebook graffitiというのを試したところ、反映されない。投稿されない。設定をいじっても沈黙したままで使いものにならない(たぶん、わたしの設定が悪い)
しょうがないんで、自作の方向で。facebookのAPIを触ってみるいい機会だ。

https://developers.facebook.com/apps
アプリを登録するために、携帯電話のメールアドレスかクレジットカードで本人認証が必要。それ以外は twitterのアプリと似たようなもんだ。WEBアプリとして登録。ドメインやアプリの名前、アプリのURLなどを入力して、アプリの app_id app_secret が管理画面で確認できる。
後は、facebookの、認証するためのURLにGETでリクエスト。レスポンスに含まれるパラメータでまたGETして、と。OAuthのやりとりは、OAuth1.0Aのtwitterより、OAuth2.0のfacebookの方が簡単、かもしれない。
具体的でわかりやすい解説は、ほかのページがたくさんあるので、検索してください。

ここでは。
facebookが用意してるSDKはPHPとJavascript。わたしが多少なりとも使えるのはperl。SDKがないので、perlでベタベタ書いていったメモ。(さらについでにいうと、CPANにはfacebookのモジュールがあるので、それを使った方がいい)
とりあえず。facebookの自分のwallにpost、投稿できるまでを忘れないうちに。

access tokenさえ取得してしまえばOK。

その1.コードを取得する

APP_ID、URLは、アプリ登録した時の管理画面に表示されている。
コンマ区切りのパラメータscope。
・publish_stream、wallに書き込む権限くださいね。
・offline_access、access tokenの期限を無期限にしてくださいね。
ということらしい。
[08/28 10:35:26] offline_access は2012/7/5で廃止になった。記事最後に代替手段追記

上記URLにアクセスすると、facebookの、このアプリを使いますか、というページに行くので、そこで承認=OKすると、facebookから、URLにコードをつけて返ってくる。
URL?code=CODECODECODE

その2.access tokenを取得する

1で取得したコードと、アプリ登録時に取得するapp secretをパラメータに追加して、上記URLにアクセスする。

8行目、その2で作ったURLにアクセス。問題なければ、レスポンス=htmlの中に、access_tokenが入っているのでそれをメモる。(今回は、自分のブログ記事を流すことが目的なので、そのままaccess token を使う)

ウォールに投稿するには
https://graph.facebook.com/USER_ID/feed ※
というURLにPOSTすることになる。ここでちょっとハマる。USER_IDなんてこれまでの過程で一度も出てきてない。取得した access token を使って USER IDを取得する必要があった。

access token をパラメータにつけてアクセスするとJSON形式でデータが返ってくる。その中に user idという項目があるので、それをメモる。

使ったもの必要なものは以下。
アプリ登録時取得 app_id app_secret
OAuthで取得 code access_token
APIで取得 user_id

※のURLに対して、POSTで本文を投稿する。
本文に最低限必要なのは access_tokenとmessage。(その他のパラメータには、link name caption description picture などがある)
access_token=ACCESS_TOKEN&message=URLENCODE(message)という形式。

これで投稿ができるようになった。ブログの最新記事をfacebookのウォールに投稿するには、本文を適当に整えるだけ。あとでやっつけてしまおう。

SDKがあるので、モバイルアプリも頑張れば作れる、ような気がする。でもなあ、facebookってどうも信用できんのだ。

[08/28 10:35:26]
追記
offline_access を指定することで access token の有効期限は永続的だったが、2012/7/5にoffline_accessが廃止となって、access_token の有効期限をチェックしなきゃいけなくなった。
詳しくは以下のURL(ありがとうございます!)
https://appofit.com/facebook/remove_offline_access/

ウチは、ユーザー権限で何かするわけでもないので、有効期限が永続的に使えるアプリのトークンでwallに投稿することにした。

上記URLに直接アクセスするとaccess_tokenがわかるので、それをメモってハードコーディング。

 

»電子書籍制作代行についてはこちら

profile

profile

 
doncha.net
contact:
»運営者
@t2aki@tokoroten.doncha.net

ところてんx5

2024/4/18 07:25

手順書作った。10ステップ弱。
ルビの抽出確認はスクリプトのおかげでほぼ瞬殺。
やっぱり手作業、目視確認のところが数時間かかる。

2024/4/17 06:09

手順書作って、バッチ化できそうなところはスクリプトにしておくか…

2024/4/17 06:07

今までのタイトルと比べると、作業量が多いけど、このへんは効率化できんなあ

検索
<<2024/4>>
 123456
78910111213
14151617181920
21222324252627
282930

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版