Facebook アカウントとの連携

Facebook アカウントを用いたユーザー作成・ログインは、開発者ポータル上でアプリケーションの設定を行うだけで簡単に実現できます。

Facebook との連携設定

Facebook アプリの作成

まずは、Facebook アプリを作成し、Facebook アプリ ID を取得する必要があります。Facebook アプリ ID の取得方法については こちら を参照してください。

Facebook アプリ作成の際には、以下の情報が必要です。"有効な OAuth リダイレクト URI" は開発者ポータルにて指定したサーバー設定場所に対応する値を指定します。なお、${your-app-id} にはご利用の AppID を入力してください。

  • 表示名
  • ネームスペース
  • カテゴリ
  • 有効な OAuth リダイレクト URI(アプリ作成後、プロダクトに "Facebook ログイン" を追加して "設定" を選択)
    • アメリカ合衆国:https://${your-app-id}.us.kiiapps.com/api/apps/${your-app-id}/integration/webauth/callback
    • 日本:https://${your-app-id}.jp.kiiapps.com/api/apps/${your-app-id}/integration/webauth/callback
    • シンガポール:https://${your-app-id}.sg.kiiapps.com/api/apps/${your-app-id}/integration/webauth/callback
    • ヨーロッパ:https://${your-app-id}.eu.kiiapps.com/api/apps/${your-app-id}/integration/webauth/callback

Kii アプリケーションの設定

次の手順に従い、開発者ポータルより Facebook アプリ ID の登録を行います。

  1. アプリケーションコンソール上で "Edit" ボタンをクリックします。

  2. "Setting" をクリックしアプリ設定画面を開きます。

  3. "Social Network Connector" セクションに Facebook アプリ ID とアプリシークレットを設定します。

    注意:"Native Application" セクションは後方互換のためにのみ残されています。こちらの設定は Facebook が FQL のサポートを終了したタイミング で無効になります(2015 年 4 月予定)。このセクションにアプリ ID を設定済みの場合は、できるだけ速やかに "Social Netowork Connector" セクションにアプリ ID とアプリシークレットを設定してください。なお、"Social Network Connector" に設定された値は "Native Application" セクションに設定した値より優先されます。

Facebook よりアクセストークンを取得

アクセストークンの取得は自前で行う必要があります。Facebook のアクセストークンを自前で取得する方法については こちら を参照してください。

Facebook アカウントによるログイン

Facebook アカウントを用いてログインを行う例を以下にあげます。{ACCESS_TOKEN_PROVIDED_BY_FACEBOOK} には、取得した Facebook のアクセストークンを入れてください。

curl -v -X POST \
  -H "Authorization: Basic {BASE64_ENCODED_APPID_AND_APPKEY}" \
  -H "Content-Type: application/vnd.kii.AuthTokenFacebookRequest+json" \
  "https://api-jp.kii.com/api/apps/{APP_ID}/integration/facebook" \
  -d '{
    "accessToken": "{ACCESS_TOKEN_PROVIDED_BY_FACEBOOK}"
  }'

ログインは Basic 認証 を使って行います。{BASE64_ENCODED_APPID_AND_APPKEY} には AppID と任意の値をコロン(:) で連結した文字列を Base64 エンコードしたものを入れてください。

Kii Cloud は指定された Facebook のアクセストークンを用いてユーザーの Facebook ID を取得し、この ID が Kii Cloud に登録済みかどうかを確認します。もし登録済みであればログイン処理を行い、未登録であればユーザー作成処理を行います。

いずれのケースにおいても、Kii Cloud は以下のようなレスポンスを返します。

< 200
< Content-Type: application/json
<
{
  "id" : {USER_ID},
  "access_token" : {ACCESS_TOKEN},
  "expires_in" : 9223372036854775,
  "new_user_created": true
}

レスポンス中の "access_token" がユーザートークンとなります。また "expires_in" は、ユーザートークンの有効期間(秒)となります。Kii Cloud がユーザー作成処理を行った場合は "new_user_created" の値が true になります。

Kii アカウントと Facebook アカウントのリンク

すでに存在する Kii Cloud のユーザーを Facebook アカウントをリンクさせることができます。リンクさせることにより、ユーザーは Facebook アカウントの認証を行うことによって Kii Cloud にログインできるようになります。

以下に Facebook アカウントをリンクする例を挙げます。 例における {ACCESS_TOKEN_PROVIDED_BY_FACEBOOK} の箇所には、Facebook より提供されたアクセストークンを入れてください。

curl -v -X POST \
  -H "Authorization: Bearer {ACCESS_TOKEN}" \
  -H "Content-Type: application/vnd.kii.LinkFacebookRequest+json" \
  "https://api-jp.kii.com/api/apps/{APP_ID}/users/me/facebook/link" \
  -d '{
    "accessToken": "{ACCESS_TOKEN_PROVIDED_BY_FACEBOOK}"
  }'

Kii Cloud は以下のようなレスポンスを返します。

< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
< Date: Mon, 14 May 2012 22:55:41 GMT
<

Kii アカウントと Facebook アカウントのリンク解除

Kii Cloud のユーザーアカウントと Facebook アカウントのリンクを解除する例を以下に示します。

curl -v -X POST \
  -H "Authorization: Bearer {ACCESS_TOKEN}" \
  "https://api-jp.kii.com/api/apps/{APP_ID}/users/me/facebook/unlink" \
  -d ""

Kii Cloud は以下のようなレスポンスを返します。

< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
< Date: Mon, 14 May 2012 22:55:41 GMT
<