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 やユーザー名は適当なものに書き換えて掲載している