Koala を使って Facebook の Graph API を呼び出してみた

OmniAuth Facebook を使って Facebook アカウントで認証できるようにはなったけど、ユーザーの情報や友人の情報を取得するには Graph API を呼び出さないといけない。OmniAuth Facebook はそこまで面倒みてくれないので、Graph API クライアントライブラリを使うことにした。

fb_graph と koala の2択で迷ったけど、Low Level の API を呼び出しているような書き味の koala を選択。

get_object と get_connections で、だいたいの Graph API は呼び出せる。詳しい使い方は koala の ReadMe を呼んでもらうとして、試しに自分自身と友人の情報を取得してみた。*1

require "koala"

ACCESS_TOKEN = "秘密"

# Facebook API クライアントを作成
@graph = Koala::Facebook::API.new(ACCESS_TOKEN)

# 自分の情報を取得
puts @graph.get_object("me")

# 自分のプロフィール画像の URL を取得
puts @graph.get_object("me?fields=picture")

# 友人一覧を取得
puts @graph.get_connections("me", "friends")

# 友人の詳細情報を取得
puts @graph.get_connections("me", "friends/1234567890")

# 友人のプロフィール画像の URL を取得
puts @graph.get_object("1234567890?fields=picture")

呼び出したい Graph API の URL さえ分かっていれば、koala を使って呼び出すのは難しくない。Graph API について調べるときは、Graph API Explorer が非常に役に立った。

*1:サンプルのユーザ ID やユーザー名は適当なものに書き換えて掲載している