分12はじめに前回まででHerokuとFacebookアプリの概要を学んでいただけたかと思います。今回からは本格的に実装に入っていきたいと思います。アプリケーションの基本となる認証部分を実装します。Facebookアプリの登録方法からRailsのプラグインを用いて簡単に認証連携を行う方法,Heroku上でのデプロイまで紹介します。Facebookアプリの認証Facebookアプリの作成にあたり,必要な部分は認証部分になります。以下のHerokuのドキュメントにそのあたりの解説記事があります。英語で,サンプルがSinatraで記載されているドキュメントになっています。http://devcenter.heroku.com/articles/facebookこのHerokuのドキュメントを参考に,SinatraでなくRails3を利用したサンプルを作成します。今回紹介するFacebookの認証は,OAuthを用いた方式になっています。この認証方式は,Twitterなどでも利用されているオープンな仕様です。ここでは,omniauthというgemを利用して実装するので詳しい仕様は理解せずに実装できますが,利用する上で仕様を理解することも重要だと思いますので,別途学んでいただくことをお勧めします。Facebookへのアプリの登録Facebookのアプリとして動作するアプリを作るためには,アプリをFacebookに登録する作業が必要になります。http://www.facebook.com/developers/こちらのページからアプリの登録ができます。その際にFacebookのデベロッパー登録が必要です。デベロッパーとしてアプリを登録するために,アカウントの認証をクレジットカードなどで行ってください。2つ登録しておくと便利です。このように分けておくことで登録内容を変更する必要なく開発を継続できます。開発用を登録しましょう。App」というリンクがありますので,そちらからアプリを登録してください。アプリ名などを入力していくと,途中画像の認証などがありますが,指示通りに入力すれば簡単に登録できるはずです。これらの項目は後から変更も可能ですので,まずは登録してみてください。開発用に設定する上でのポイントは以下の点です。(アプリのIDとなる文字列を入力してください。各種設定を行うFacebookで認証するアプリを作るそれでは実際にRailsプロジェクトを立ち上げて,Facebookアプリとして認証をやってみましょう。ポイントは,omniauthという外部サービスを利用した認証用のライブラリを利用する部分です。このgemは外部とのやりとりを全てカバーしてくれるので利用する側は,簡単なコードを書くだけで複雑な外部との認証連携などを実装できます。今回サンプルとして作成したアプリの認証の動きを確認してもらうのが良いかと思います。Herokuを利用してアプリを動かしているので,以下のURLから触ってみてください。http://apps.facebook.com/mangadojo/IFrameの画面の右上に今回認証を実装したリンクがあります。リンクをクリックして動作の流れを掴んでみてください。上記のアプリのコードは,Githubのレポジトリにアップロードされています。https://github.com/mataki/manga-dojo/tree/gihyo-004全体像は,こちらを見ていただくことにしてここからは認証を行うためのポイントを紹介していきます。omniauthを利用して,Facebookとの認証連携を行っている変更のコミットは以下のものになります。https://github.com/mataki/manga-dojo/commit/6ff0a622cc2432e87b0278bad67cb67b4c79ad67こちらの差分を細かく見ていきましょう。Gemfileでoa-oauthを利用するように以下のコードを追加します。'oa-oauth'そして,config/initializers/oa-oauth.rbというファイルを以下のように作成します。}endこのようにしてRackのmiddlewareとしてFacebook認証を行う設定を書きます。Secretの項目を設定するようなコードになっています。次に,config/routes.rbでルーティングを以下のように定義します。callbackの含まれるURLはFacebookとの認証が終わった際に戻ってくるURLです。こちらで認証処理などを行います。