FacebookのGraph APIをさわった。コメントを自動でしたかったからだ。

RubyでFacebook Graph APIをたたくにはサードパーティなgemを使うのでいろいろい種類がある。今回はkoalaを使用した。

コメントに関するAPIの仕様はここに書いてある

require 'kola'

object_id = "OBJECT_ID"
file_path = "FILE_PATH"
oauth_access_token = "ACCESS_TOKEN"

file = Koala::UploadableIO.new(file_path)
graph = Koala::Facebook::API.new(oauth_access_token)
graph.put_object(object_id,"comments", source: file)

で、投稿できる。graph.put_comment というメソッドがあるが、ファイルがわたせない。コメントしたいだけならこれで充分。

object_id が必要になる。 てっとり早い方法はブラウザでコメントしたいポストを開いたらURLに書いてある数字がobject_idである。

画像はsourceに指定するが Koala::UploadableIOで開いておく。

またoauth_tokenが必要になる。 Graph API Explorer(アクセスにはログインしている必要がありそう)``から作成できる。たぶん1、2時間しかつかえないはず。(ちゃんと調べてない)

権限は

  • user_photos
  • publish_actions

が最低必要で、書き込みする場所によって対応したものが必要。

  • user_status
  • user_groups

などなど。必要に応じて追加する。

user_photosをつけてなくて3時間ぐらい悩んだのはただの愚痴。

ついでにRestClientで送りつける場合の方法

require 'rest_client'
url = "https://graph.facebook.com/v2.1/#{object_id}/comments?oauth_token=" + oauth_access_token
RestClient.post(url, "source" => open("/Users/eiel/Desktop/hoge.png"))

参考文献