『入門ソーシャルデータ』9章: Facebookのアクセストークン取得

毎週開催されている「『入門 ソーシャルデータ』真面目に勉強する会」は、次が9回目で、9章がテーマです。

というわけで、9章のサンプルコードを手軽に実行するための準備についてメモします。

9章のテーマ

9章は「Facebook: オールインワンのソーシャルウェブ環境」というタイトルで、Facebookのデータを取ってきて可視化しようという内容です。

この章はページ数こそ多いですが、そのほとんどがソースコードで、理論的な話は少なめです。サンプルコードは、原著者のgithubで公開されています。1〜8章をすべて読んでいなくても、9章だけを独立して味わうことができるのではと思います。

作業方針

とにかくFacebookのデータにアクセスしないことには始まりません。そのために、アクセストークンが必要です。

サンプルコードのfacebook__login.pyが、Facebookのアクセストークンをローカルファイルとして保存する処理をしているので、ここでは同じことを手でやることにします。

# というのも、facebook__login.pyは、GAE(Google App Engine)上にアプリをホストすることを想定したコードになっており、真似をするのが面倒だからです。

手順

1. Facebookアプリの新規作成

まず、http://developers.facebook.com/ で新規にアプリを作ります。[Build Apps on Facebook]から先へ進むと、[Create New App]というボタンがそこらへんに表示されるので押します。ポップアップが表示されます。

# この時点では、赤いボックスの注意書きは表示されないかもしれません。

アプリの名前を入力します。「Web Hosting」のチェックボックスは外しておきます。

2. Security Check

captchaを入力します。

さて、もし過去に一度でもアプリを作った(作ろうとした?)ことがあれば、以上で新規アプリが作成されるようです。その場合、手順の4へ飛びます。

しかし、アプリを初めて登録する場合、このタイミングで(1番目のキャプチャのとおり)携帯電話かクレジットカードによる認証が必要であるという注意書きが表示されるかもしれません。その場合、3の手順が必要です。

3.携帯電話を使った認証

今回は、携帯電話を使った認証を選択します。上の注意書きの中の[mobile phone]というリンクをクリックすると、次のポップアップが開きます。

携帯電話のメールアドレスを入力します。

すると、こんなメールが届きます。

Subject: Facebook Mobile confirmation code

Facebook Mobile confirmation code: xxxxxx
Or visit http://fb.me/xxxxxxxxxxxxxx

このコードを、次のポップアップに入力します。

これでアプリが作成できました。

4. アクセストークンの取得

アプリの作成直後は、アプリ編集画面が開いています。

左メニューにある[UseGraph API Explorer]リンクをクリックします。

すると、直接HTTPリクエストを投げて結果のJSONを得られる画面に移動します。

自分のアプリ(スクリーンショットでは「SampleSocialData」)を選択していることを確認して、[Get Access Token]ボタンを押します。

大量のチェックボックスが表示されたポップアップが開きます。この画面で、アプリにアクセスを許可する対象を選びます。

ここでは、facebook__login.pyで、EXTEND_PERMSという変数に定義されている権限すべてを選択します。忠実にやるとこうなります。



選び終えたら、[Get Access Token]ボタンを押します。すると、別のポップアップが表示されます。

[Login with Facebook]ボタンを押します。

ポップアップが閉じて、アクセストークンがテキストボックスに表示されます。

5.アクセストークンのローカル保存

アクセストークンをテキストファイルにコピーアンドペーストし、{サンプルコードのrootフォルダ}\python_code\out\facebook.access_token として保存します。文字コードUTF-8にします。

各サンプルコードは、facebook.access_tokenに対してアクセストークンを問い合わせるので、そのための準備というわけです。

これで、9章のサンプルコードを実行するための共通の準備ができました。

注意: アクセストークンの時間切れ

一定時間が経過すると、アクセストークンは無効になります。

サンプルコードを実行すると、HTTPエラーの400番(Bad Request)が返ってくるでしょう。

その場合、新しいトークンを発行して、保存し直します(手順3と4を再度行います)。