d アカウントとの連携

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

d アカウント連携を有効にすると、NTT ドコモの d フォトサービスのデータにアクセスできます。詳細は ドコモ d フォトとの連携 をご参照ください。

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

NTT ドコモの docomo Developer support で取得した client id を登録して Kii アプリケーションとの連携設定を行います。

登録は電子メールにて受け付けております。以下の書式に従い必要事項を記載して、support@kii.com までメールでご連絡ください。なお、メールは開発者ポータルでアプリケーションを作成した際に登録したアドレスより送信してください。

メール件名:
【d アカウント連携】client id の登録

メール本文:
・Kii アプリケーションの AppID:
・NTT ドコモより発行された client_id:

設定が完了次第、設定完了メールを返信します。

Android での d アカウントの連携

Kii Social Connect の初期化

d アカウント連携を利用するには、まず KiiSocialConnect を初期化します。初期化にあたっては下記が必要となります。

以下に、Kii Social Connect 初期化の例を挙げます。

// PhotoColleSocialConnect のインスタンスを作成します。
PhotoColleSocialConnect connect = (PhotoColleSocialConnect) Kii.socialConnect(SocialNetwork.PHOTOCOLLE);

// リダイレクト URL とスコープを設定します。
Bundle initializeOption = new Bundle();
initializeOption.putString("redirectUri", "___REDIRECT_URL___");
initializeOption.putSerializable("predefinedScopes", EnumSet.of(Scope.PHOTO_UPLOAD_CONTENT, Scope.PHOTO_GET_CONTENTS_LIST));

// PhotoColleSocialConnect のインスタンスを初期化します。
connect.initialize("__DOCOMO_CLIENT_ID__", "__DOCOMO_CLIENT__SECRET___", initializeOption);

こちらでは以下の処理を行っています。

  1. 連携対象のサービス名として SocialNetwork.PHOTOCOLLE を指定して Kii.socialConnect メソッドを実行し、Social Network Connector インスタンスを作成。
  2. Bundle にリダイレクト URL(redirectUri)とスコープの集合(predefinedScopes)を設定。スコープの集合は必ず Scope.PHOTO_UPLOAD_CONTENT を含めなければなりません。
  3. ドコモアプリケーションの client_id/client_secret と、2. で設定した Bundle の 3 つを指定して initialize メソッドを実行し、Social Network Connector を初期化。

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

d アカウントを用いて Kii Cloud にログインする例を以下に挙げます。下記の例では Social Network Connector はすでに初期化済みであると仮定します。

// PhotoColleSocialConnect はすでに初期化済みであると仮定します。

// d アカウントで Kii Cloud にログインします。
connect.logIn(activity, null, new KiiSocialCallBack(){
  @Override
  public void onLoginCompleted(SocialNetwork network, KiiUser user, Exception exception) {
    if (exception == null) {
      // ログインに成功しました。
    } else {
      // ログインに失敗しました。
    }
  }
});

ここでは以下のことが行われています。

  1. logIn メソッドを実行してログイン処理を開始します。指定されたアカウントが新規の場合、必要に応じてログイン処理に先立ちユーザー作成処理も同時に行われます。このメソッドはノンブロッキングのため、処理結果はコールバックにて取得します。
  2. ログインに成功した場合は認証情報が Kii Cloud ユーザーに紐付けられて保存されます。

ログインに成功すると、認証情報が保存されます。それ以降は logIn メソッドを利用せずに KiiCloudPhotoColle インスタンスを取得できます。ログイン時に利用した Kii Cloud ユーザーで前もって Kii Cloud にログインしてください。そして、Kii Social Connect の初期化 を実行してから、PhotoColleSocialConnect.getKiiCloudPhotocolle() を実行してください。

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

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

以下に、アカウントのリンク処理を行う例を示します。下記の例では Social Network Connector はすでに初期化済みであると仮定します。

// PhotoColleSocialConnect はすでに初期化済みであると仮定します。

// Kii アカウントを d アカウントとリンクします。
connect.link(activity, null, new KiiSocialCallBack(){
  @Override
  public void onLinkCompleted(SocialNetwork network, KiiUser user, Exception exception) {
    if (exception == null) {
      // リンクに成功しました。
    } else {
      // リンクに失敗しました。
    }
  }
});

ここでは以下のことが行われています。

  1. link メソッドを実行してリンク処理を開始します。このメソッドはノンブロッキングのため、処理結果はコールバックにて取得します。
  2. リンクに成功した場合は認証情報が Kii Cloud ユーザーに紐付けられて保存されます。

リンクに成功すると、認証情報が保存されます。それ以降は link メソッドを利用せずに KiiCloudPhotoColle インスタンスを取得できます。リンク時に利用した Kii Cloud ユーザーで前もって Kii Cloud にログインしてください。そして、Kii Social Connect の初期化 を実行してから、PhotoColleSocialConnect.getKiiCloudPhotocolle() を実行してください。

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

Kii Cloud のユーザーアカウントと d アカウントのリンクを解除する例を以下に示します。下記の例では Social Network Connector はすでに初期化済みであると仮定します。

// PhotoColleSocialConnect はすでに初期化済みであると仮定します。

// Kii アカウントと d アカウントのリンクを解除します。
connect.unlink(activity, null, new KiiSocialCallBack(){
  @Override
  public void onUnLinkCompleted(SocialNetwork network, KiiUser user, Exception exception) {
    if (exception == null) {
      // リンクの解除に成功しました。
    } else {
      // リンクの解除に失敗しました。
    }
  }
});

ここでは以下のことが行われています。

  1. unlink メソッドを実行してリンク処理を開始します。このメソッドはノンブロッキングのため、処理結果はコールバックにて取得します。
  2. リンク解除が成功した場合は、Kii Cloud ユーザーに紐付けられた認証情報が削除されます。

リンク解除後、解除した Kii Cloud ユーザーで再度 PhotoColle ネットワークにログインする場合は、必ず d アカウントによるログインKii アカウントと d アカウントのリンク を実行する必要があります。

iOS での d アカウントの連携

Kii Social Connect の初期化

d アカウント連携を利用するには、まず KiiSocialConnect を初期化します。初期化にあたっては下記が必要となります。

以下に、Kii Social Connect 初期化の例を挙げます。

// スコープを設定します。
NSArray *scopes = @[
        [DCScope photoUploadContent],
        [DCScope photoGetContentsList]];

// PhotoColleSocialConnect インスタンスを初期化します。
[KiiPhotoColleSocialConnect setupNetworkWithClientId:@"__DOCOMO_CLIENT_ID__"
                                        clientSecret:@"__DOCOMO_CLIENT_SECRET__"
                                         redirectUri:@"___REDIRECT_URL___"
                                              scopes:scopes
                                       accessibility:kSecAttrAccessibleWhenUnlocked];

スコープの集合は必ず Scope.PHOTO_UPLOAD_CONTENT を含めなければなりません。

こちらでは以下の処理を行っています。

  1. ドコモアプリケーションの consumer_key/consumer_secret とリダイレクト URL、ディスプレイタイプを指定して setupNetworkWithClientId メソッドを実行し、Social Network Connector を初期化。

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

d アカウントを用いて Kii Cloud にログインする例を以下に挙げます。下記の例では Social Network Connector はすでに初期化済みであると仮定します。

// KiiPhotoColleSocialConnect はすでに初期化済みであると仮定します。

// d アカウントで Kii Cloud にログインします。
[[KiiPhotoColleSocialConnect sharedInstance] logInOnNavigationController:self.navigationController
                                                               withBlock:^(KiiUser *retUser, NSError *retError) {
  if (retError == nil) {
    // ログインに成功しました。
  } else {
    // ログインに失敗しました。
  }
}];

ここでは以下のことが行われています。

  1. logInOnNavigationController メソッドを実行してログイン処理を開始します。指定されたアカウントが新規の場合、必要に応じてログイン処理に先立ちユーザー作成処理も同時に行われます。このメソッドはノンブロッキングのため、処理結果はコールバックにて取得します。
  2. ログインに成功した場合は認証情報が Kii Cloud ユーザーに紐付けられて保存されます。

ログインに成功すると、認証情報が保存されます。それ以降は logInOnNavigationController:withBlock: メソッドを利用せずに KiiCloudPhotoColle インスタンスを取得できます。ログイン時に利用した Kii Cloud ユーザーで前もって Kii Cloud にログインしてください。そして、Kii Social Connect の初期化 を実行してから、[[KiiPhotoColleSocialConnect sharedInstance] kiiCloudPhotoColle] を実行してください。

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

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

以下に、アカウントのリンク処理を行う例を示します。下記の例では Social Network Connector はすでに初期化済みであると仮定します。

// KiiPhotoColleSocialConnect はすでに初期化済みであると仮定します。

// Kii アカウントを d アカウントとリンクします。
[[KiiPhotoColleSocialConnect sharedInstance] linkCurrentUserOnNavigationController:self.navigationController
                                                                         withBlock:^(KiiUser *retUser, NSError *retError) {
  if (retError == nil) {
    // リンクに成功しました。
  } else {
    // リンクに失敗しました。
  }
}];

ここでは以下のことが行われています。

  1. linkCurrentUserOnNavigationController メソッドを実行してリンク処理を開始します。このメソッドはノンブロッキングのため、処理結果はコールバックにて取得します。
  2. リンクに成功した場合は認証情報が Kii Cloud ユーザーに紐付けられて保存されます。

リンクに成功すると、認証情報が保存されます。それ以降は linkCurrentUserOnNavigationController:withBlock: メソッドを利用せずに KiiCloudPhotoColle インスタンスを取得できます。リンク時に利用した Kii Cloud ユーザーで前もって Kii Cloud にログインしてください。そして、Kii Social Connect の初期化 を実行してから、[[KiiPhotoColleSocialConnect sharedInstance] kiiCloudPhotoColle] を実行してください。

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

Kii Cloud のユーザーアカウントと d アカウントのリンクを解除する例を以下に示します。下記の例では Social Network Connector はすでに初期化済みであると仮定します。

// KiiPhotoColleSocialConnect はすでに初期化済みであると仮定します。

// Kii アカウントと d アカウントのリンクを解除します。
[[KiiPhotoColleSocialConnect sharedInstance] unlinkCurrentUserWithBlock:^(KiiUser *retUser, NSError *retError) {
  if (retError == nil) {
    // リンクの解除に成功しました。
  } else {
    // リンクの解除に失敗しました。
  }
}];

ここでは以下のことが行われています。

  1. unlinkCurrentUserWithBlock メソッドを実行してリンク処理を開始します。このメソッドはノンブロッキングのため、処理結果はコールバックにて取得します。
  2. リンク解除が成功した場合は、 Kii Cloud ユーザーに紐付けられた認証情報が削除されます。

リンク解除後、解除した Kii Cloud ユーザーで再度 PhotoColle ネットワークにログインする場合は、必ず d アカウントによるログインKii アカウントと d アカウントのリンク を実行する必要があります。