この記事は、ayushmishra2005氏の記事の意訳です。参考にさせていただいたついでに訳してみました。参考程度にどうぞ。

Providing a “Sign-in with Facebook” functionality using Scala

誤訳・誤植等ありましたら、@modal_soulまでリプライいただけるとありがたいです。


ここ最近に、Lift2.4で構築したソーシャルプロジェクトで、Facebookへのサインイン機能を統合しました。この記事はその時の手順のサマリです。


1)Facebook APIを作る(※既に持っている場合不要です)

次のリンクを参考にアプリを作ってください。サイトURLを含む全ての詳細を記入してエンターします。サイトURLは以下のような感じになります。

http://www.com/api/facebook/auth

このサイトURL宛に、Facebookはレスポンスを送ります。このアプリケーションを保存すると、アプリキー/APIキー/秘密鍵が入手できます。

これらのキーは後ほど使うので注意してください。


2) Liftを使っている場合は、各キーをdefault.propsに追加設定します。

facebook.key=<your_key>
facebook.secret=your <secret_key>
facebook.callbackurl=/api/facebook/auth

3) Facebookログイン画像fb.pngをダウンロードします


4) アプリキー/APIキー/秘密鍵とコールバックURLを設定するために、FacebookGraph.scalaを新規作成します。またFacebookからアクセストークンを要求するためにこのScalaファイルを使用します。


5) 次にログインページにFacebookログインリンクを表示するためにFacebook素にペットを作成します。


6) login.htmlにFacebookログインリンクを追加します。

<div class="span4">
      <span lift="Facebook.link"/></span>
</div>

7) SiteMap.scalaにFacebook接続メニューを作ります。

val facebookConnect = MenuLoc(
    Menu.i("FacebookConnect") / "facebook" / "connect" >> EarlyResponse(() => {
      FacebookGraph.csrf(Helpers.nextFuncName)
      Full(RedirectResponse(FacebookGraph.authUrl, S.responseCookies: _*))
 }))

8) 最後に、Facebookからレスポンスを受け取るためのFacebook.apiを作成します。