facebookアプリのheroku上への構築手順と、開発言語の検討
facebookアプリをherokuに構築するのが恐ろしく簡単だったメモ。ついでにheroku上でfacebookアプリを作るなら何で作ればよさそうかも載せておいた。
前準備としてherokuのアカウントを取得しておく。
facebookのdeveloperページからherokuにアプリを設置
https://developers.facebook.com/からログインして、「新しいアプリケーションを作成」からアプリを作成する。すると作成したアプリの基本設定画面に遷移する。画面中段に以下の表示。
そのままGet Startedで進む。
今の環境だとherokuしか選択できないようなので、Next!
次に言語環境(現状はPHP、Node.js、Python、Ruby)とherokuのID(E-mail アドレス)を入力して「作成」に進む。
数秒の間があって、Successページが表示される。Go to appを押すとherokuで作成されたページが表示される。
ちなみにすべての環境で試したところ、PHP、Node.jsの場合はアプリのインストールページにリダイレクトされるのだが、Python、Rubyの場合は以下のようなデフォルトの静的ページが表示されるだけっぽい。
この辺りはPHPerに優しいfacebookに譲歩したherokuってことなのかな。っていうか、herokuのドキュメントはPHPの開発について全く触れられてないんだが、どうなってるんだろ?
せっかくなのでherokuにどんなアプリがデフォルトでデプロイされたか見てみる。ソースコードの取得はherokuの管理ページからアプリのGitリポジトリの場所を確認して
$ git clone git@heroku.com:hoge-hoge-1234.git
とかすればよい。
PHP
どうやらルートディレクトリのindex.phpがエントリポイントになっているみたい。httpのレスポンスヘッダー見るとApacheがheroku上で動いている様子。なるほどね。
Apacheのドキュメントルートでしか開発できないとなると制約が出てきて使いづらそう。今後の展開に期待しつつ、当面はPHPは保留だな。
python
チェックアウトしたrequirements.txtを見る。
Flask==0.7.2 Jinja2==2.6 Werkzeug==0.7.1 simplejson==2.2.1 wsgiref==0.1.2
とある。次にexampleapp.py
FBAPI_APP_ID = os.environ.get('FACEBOOK_APP_ID')
お、環境変数にfacebookのapp_idが設定済み?すごい!他にもいろいろfacebook APIがらみの関数が定義してあるので何かと使えそう。とはいえドキュメントが見当たらないので、当面は通信部分も含めて実装する必要がある。
Node.js
当面使う予定はなかったけれど一応見てみた。というのもfacebook公式SDKのうちheroku上でまともに動かせそうなのが、PHPかJavascriptしかない。heroku上のPHP開発運用は不明点もあるので、もしかしてNode.jsが一番環境整っているのかもと思ったため。
というわけでpackage.jsonを見てみる。
{ "name": "facebook-template-node", "version": "0.0.1", "description": "Template app for Heroku / Facebook integration, Node.js language", "dependencies": { "ejs": "0.4.3", "everyauth": "0.2.18", "express": "2.4.6", "facebook-client": "1.3.0", "facebook": "0.0.3", "node-uuid": "1.2.0", "socket.io": "0.8.4" } }
おー、facebookのSDKっぽいものが入ってる。これはもうNode.js時代が幕を開けているといっても過言ではないな。Pythonでやろうと思っていたが、これはNode.jsでやったほうが楽そうだ。