4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AndroidアプリでKii CloudとFacebook認証を連携させる方法

Last updated at Posted at 2016-01-17

はじめに

Kii Cloudで認証を実装しているAndroidアプリにFacebook認証を追加してみました。初心者の自分は公式サイトの記述通りにやっただけではうまくいかなかったので、つまづいた手順をメモしています。

なお、Kii Cloud 連携を行うには https://developer.kii.com/ からユーザ登録のうえAndroidアプリを登録しSDKをダウンロードしておく必要があります。

Facebook アプリケーションIDの発行

まずFacebook App ID を取得するためfacebook for Developerにログインし、開発者として登録したことがなければ「Register Now」ボタンから登録を開始します。初回はSMSまたは電話での認証が必要のようです。次に「+Add A New App」ボタンからプラットフォームにAndroidを選択し、新規アプリを追加します。その後はウィザードに従って設定を完了するとApp IdとApp Secretが発行されます。

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

FacebookのApp IDが発行されたら、Kii Cloud開発者ポータルより Facebook App ID の登録を行います。アプリケーションコンソール上で対象アプリを選択し、右上の歯車アイコンから "Edit->Setting" の順にクリックしアプリ設定画面を開きます。
01.png

次に"Social Network Connector" セクションに Facebook App ID と App Secret を設定します。
02.png

Android Studioで事前準備

AndroidManifest.xmlに下記2つのactivityを追記します。
<activity android:name="com.kii.cloud.storage.social.connector.KiiSocialNetworkConnectorLoginActivity" android:label="@string/app_name" />
<activity android:name="com.facebook.LoginActivity" />

build.gradeにも下記を追記します。
compile 'com.facebook.android:facebook-android-sdk:3.20.0'

...とここまでは特に問題なく進みます。

認証部分を実装

公式ドキュメントによると「コードに数行追加するだけで簡単に実現できます」とのことですが、ここに記載されている認証部分をサンプル通りに書いても動きません。そこでいろいろぐぐるとこのお知らせが見つかり、アクセストークンの取得が必要とのこと。GitHubのサンプルを自分のApp Idに書き換えると問題なくFacebook認証できました。

補足:既存の認証との共存

しかし、問題は既存のKii認証とどう共存させるかです。FacebookとKiiのアクセストークンの概念の違いがわからず混乱しましたが、自分なりに色々解釈したところ下記のように動作しているようです(間違ってたら指摘ください)。

  1. Facebookでログイン
  2. Kii上にユーザが作成され、アクセストークンもできる
  3. これ以降はFacebookは意識する必要なし

しかし、これを信じてログアウトはKiiの認証だけ意識した実装にしていると、アプリからログインできないという問題が起こりました。

そこでログアウト処理に下記のfacebookログアウト処理を追加したら無事ログアウトできました。

            Session s = Session.getActiveSession();
            s.closeAndClearTokenInformation();
            KiiUser.logOut();

どうやらGitHubのサンプルではfacebookのセッションが残っていた場合に自動ログインするという親切な仕組みになっていたためのようです。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?