Dropbox アカウント連携

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

Dropbox との連携設定

Dropbox アプリケーションの作成

まずは、Dropbox アプリケーションを作成し、Dropbox App キーと App シークレットを取得する必要があります。取得方法については Dropbox の公式ドキュメント を参照してください。

次の手順に従い、Dropbox アプリケーションを作成します。

  • What type of app do you want to create? ("Dropbox API app" を指定してください)
  • What type of data does your app need to store on Dropbox? ("Datastores only" を指定してください)
  • Provide an app name, and you're on your way. (アプリケーション名を指定してください)

Dropbox アプリの作成が完了すると、Dropbox App キーと App シークレットが払い出されます。

次にアプリケーションの設定を行います。"Redirect URIs" は開発者ポータルにて指定したサーバー設定場所に対応する値を指定します。なお、${your-app-id} にはご利用の AppId を入力してください。

  • "Settings" > "OAuth2" > "Redirect URIs"
    • アメリカ合衆国: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 アプリケーションの設定

次の手順に従い、開発者ポータルより Dropbox App キーと App シークレットの登録を行います。

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

  2. "SOCIAL NETWORKS" をクリックします。

  3. "Dropbox" をクリックし Dropbox の設定画面を開きます。

  4. Dropbox App キーと App シークレットを設定します。

次に Dropbox 認証の際に SDK 内で使用している Activity を利用可能にするために AndroidManifest.xml の application タグ配下に以下の内容を追加します。

<activity
    android:name="com.kii.cloud.storage.social.connector.KiiSocialNetworkConnectorLoginActivity"
    android:label="@string/app_name" />

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

Dropbox アカウントを用いて Kii Cloud にログインする例を以下に挙げます。

Activity activity = this.getActivity();
KiiSocialConnect connect = Kii.socialConnect(SocialNetwork.SOCIALNETWORK_CONNECTOR);

Bundle options = new Bundle();
options.putParcelable(KiiSocialNetworkConnector.PROVIDER, KiiSocialNetworkConnector.Provider.DROPBOX);

// Login.
connect.logIn(activity, options, new KiiSocialCallBack() {
  @Override
  public void onLoginCompleted(SocialNetwork network, KiiUser user, Exception exception) {
    if (exception != null) {
      // Handle the error.
      return;
    }
  }
});

基本手順は以下のとおりです。

  1. Dropbox アカウントを利用したログインを制御する Activity を作成します。
  2. ソーシャル・ネットワークコネクターのインスタンスを socialConnect() メソッドで生成します。この際、SocialNetwork.SOCIALNETWORK_CONNECTOR を引数で指定します。
  3. Bundle を作成し、ログインを行う対象のソーシャルネットワークを指定します。ここでは Provider.DROPBOX を指定しています。
  4. logIn() メソッドでログイン処理を実行します。指定されたアカウントが新規の場合、ログイン処理に先立ちユーザー作成処理も同時に行われます。このメソッドはノンブロッキングのため、処理結果はコールバックで取得しています。

注意:さらに、以下の例のように Dropbox 認証を完了するためのメソッドを onActivityResult() メソッドに追加する必要があります。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (requestCode == KiiSocialNetworkConnector.REQUEST_CODE) {
    Kii.socialConnect(SocialNetwork.SOCIALNETWORK_CONNECTOR).respondAuthOnActivityResult(
      requestCode,
      resultCode,
      data);
  }
}

ログインに成功すると、ユーザーに関する情報は SDK 内部にキャッシュされます。キャッシュされた情報は getCurrentUser() メソッドで取得できます。次の例のように getAccessTokenBundle() メソッドを使うと、アクセストークンや関連パラメーターが取得できます。

KiiSocialConnect connect = Kii.socialConnect(SocialNetwork.SOCIALNETWORK_CONNECTOR);
Bundle b = connect.getAccessTokenBundle();

// The access token.
String accessToken = b.getString("oauth_token");

// User id provided by the social network provider.
String providerUserId = b.getString("provider_user_id");

// If a new Kii user is created with the logIn method.
boolean kiiNewUser = b.getBoolean("kii_new_user");