最近Facebook Eventでイベントを立ち上げて、参加者に連絡をとるようなことが一般的になってきました。IT勉強会系でもFacebook Eventを活用する機会が少しずつ増えてきている用に思えます。
ということでFacebookのGraph APIからOpenなFacebook Eventを取得するためのRubyスクリプトを作成したので備忘録メモ共有です!
🐮 Gemのインストール
まずは、Facebook Graph APIへのAccessをサポートしてくれるGem『nov/fb_graph』の導入です。
Gemfileに以下を追加して、bundle install
を実行。
# Facebook Graph API |
🐞 Facebookのアクセストークンの種類
Facebookのアクセストークンで特に馴染みが深いのは、次の2つ。
- Facebookのユーザーに紐付いたトークン。有効期限が1~2時間のものと、60日間のものがある
- Facebook アプリに紐づくAccess Token。有効期限が1~2時間のものと、60日間のものがある
🐰 Facebookアプリケーションの登録
アクセストークンを取得するためにはその前にFacebookアプリケーションのApp ID, アプリケーションのシークレットキー
が必要。
ということで、Facebook DevelopersからFacebookアプリケーションのApp ID, アプリケーションのシークレットキー
を取得。
🚜 Facebookのアクセストークの取得
Userアクセストークンは『Graph API Explorer』から取得できます。Userアクセストークンは、「アクセストークンを取得」=>「Select Permissions」でパーミッションを指定できます。
このままだとアクセストークンの期間が短いので、有効期限を60日間に延長します。
https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id= |
このURLにブラウザでアクセスすると、有効期限が60日のアクセストークンが取得できます。
🐠 Facebook Graph APIから公開Eventを取得
ようやくFacebook Graph APIにアクセスするためのアクセストークンを取得できました。
ということで、さっそくRubyスクリプトからアクセス。
# Eventを検索するためのキーワード |
ということで、Facebook Eventがますます身近になりそうです!
🚕 所感
Facebookのアクセストークン周りは昔から何度もトライしていますが、いまだにちゃんと理解しきれていないです。もし間違っている部分にお気付きの方がいれば、ぜひコメントください^^
🐡 おまけ:Facebookアプリケーションに紐づくアクセストークンの取得
Facebookアプリケーションに紐づくアクセストークンは、『Access Token Tool』から取得できます。
🍄 参考リンク
Facebook API - アクセストークン! - mk-mode BLOG
Search Facebook events and pagination (Graph API) - Stack Overflow