読者です 読者をやめる 読者になる 読者になる

Facebookアプリケーション事始

Facebook Django

アプリケーション登録

下記のページを参照。

  1. Developerアプリケーションにログインする。
  2. アプリケーション名を決め、規約に同意して新規作成
  3. アプリケーションの管理画面からEdit settings > Canvasを選択し、"Canvas Page URL"と"Canvas Callback URL"を決める。前者はFacebookユーザがそのアプリケーションにアクセスする際のURLで、後者はアプリケーションが配置されているサードパーティーのサーバーのURL。
  4. Edit settings > Canvas > Canvas Settingsで"Render Method"をFBMLに選択。この点は好みとアプリケーションの仕様にもよると思うが、僕はこのページを読んで、FBMLの方がメリットがあると判断した。

c.f.

pyfacebookのサンプルアプリケーションを試す

アプリケーション設定ページにサンプルコードしてPHPのコードが掲載されていて、ご丁寧にPHPクライアントライブラリへのリンクが張られているけど使わない。PHPは実行環境を整えるのも、使いこなすのも難しいからね。

というわけで、以下のページを参考にDjangoでやる。

pyfacebookのコードをチェックアウトして、インストール。

$ git clone git://github.com/sciyoshi/pyfacebook.git
$ cd pyfacebook
$ python setup.py install

後は、pyfacebook/examples/pyfacebook_sample/に最小限のDjangoアプリケーションがあるので、READMEにある通り、pyfacebook_sampleを自分のDjangoプロジェクトの中にコピーする。このサンプルを使えば、ほんの少し作業を行えば実際にFacebookで動くアプリケーションをデプロイできるので、DjangoによるFacebookアプリケーション開発の雰囲気がつかめる。

pyfacebookのコードは検討していないけど、Middlewareでrequestオブジェクトのプロパティに"facebook"というオブジェクトを追加し、

@facebook.require_login()
def post_add(request):
    request.facebook.profile.setFBML(uid=request.facebook.uid, profile='...')
    return request.facebook.redirect('http://apps.facebook.com/pyfacebook/')

のように書かせるインターフェイスはよさげ。(こうではないインターフェイスとしてはThreadLocalオブジェクトを使う手法があると思うが、この手法は黒魔術的になりがちで、Djangoの良さを損なってしまう。)

Facebookは予想通りというか、当然というか、簡単にアプリケーションを作れそうな感覚があって、やはり「格が違う」と感じてしまう。