アクセストークンの利用

Kii PhotoColle SDK で d フォトサービス のみを利用する場合、アクセストークンの管理や更新は Kii PhotoColle SDK が行います。このため、アプリケーション開発者はこのページを読む必要はありません。

d フォトサービス 以外のドコモ電話帳、データ管理 BOX などの NTT docomo のサービスを利用する場合、以下の方法でアクセストークンを取得出来ます。取得したアクセストークンで直接 NTT docomo のサービスにアクセスしてください。

Android でのアクセストークンの利用

アクセストークンの利用

アクセストークンを利用する際は事前に認証を行い、認証サーバーからアクセストークンを取得してください。アクセストークンの取得は こちら をご覧ください。

アクセストークンは AuthenticationContext.getAccessToken() で取得できます。以下に取得の例を記載します。

String getAccessToken() {

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

  // KiiCloudPhotoColle インスタンスを取得します。
  KiiCloudPhotoColle photoColle = connect.getKiiCloudPhotocolle(context);

  // AuthenticationContext インスタンスを取得します。
  AuthenticationContext authContext = photoColle.getAuthenticationContext();

  // アクセストークンを取得します。
  return authContext.getAccessToken();
}

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

  1. Kii.socialConnect() メソッドを実行して、 PhotoColleSocialConnect インスタンスを取得する。
  2. PhotoColleSocialConnect インスタンスから KiiCloudPhotoColle インスタンスを取得する。
  3. KiiCloudPhotoColle インスタンスから AuthenticationContext インスタンスを取得する。
  4. AuthenticationContext.getAccessToken() メソッドでアクセストークンを取得する 。

アクセストークンの更新

Kii PhotoColle SDK は手動でアクセストークンを更新できます。以下にアクセストークンの更新の例を記載します。

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

// KiiCloudPhotoColle インスタンスを取得します。
KiiCloudPhotoColle photoColle = connect.getKiiCloudPhotocolle(context);

// AuthenticationContext インスタンスを取得します。
AuthenticationContext authContext = photoColle.getAuthenticationContext();

if (authContext.getRemainingTime(TimeUnit.SECONDS) > 300) {
  // アクセストークンの有効期限まで 5 分以上あります。
  // このアクセストークンを使って PhotoColle ネットワークにアクセス
  // 可能です。どの程度の残り時間でアクセストークンのリフレッシュ
  // を行うかはアプリケーションに依存します。
  return;
}

// アクセストークンをリフレッシュします。
Authority.refreshToken(authContext,
    new AuthenticateCallback() {
      @Override
      public void onAuthenticated(
          AuthenticationContext context,
          Exception exception)
      {
        if (exception != null) {
          // アクセストークンのリフレッシュに失敗しました。
          // 必要ならば、Authority#authenticate() メソッドで
          // 再度認証してください。
        }

        // アクセストークンのリフレッシュに成功しました。
        // AuthenticationContext#getAccessToken() メソッドで取得した
        // アクセストークンを利用して、NTT docomo のサービスにアクセスできます。
      }
    });
  1. Kii.socialConnect() メソッドを実行して、 PhotoColleSocialConnect インスタンスを取得する。
  2. PhotoColleSocialConnect インスタンスから KiiCloudPhotoColle インスタンスを取得する。
  3. KiiCloudPhotoColle インスタンスから AuthenticationContext インスタンスを取得する。
  4. AuthenticationContext.getRemainingTime() で残り時間を確認する。
  5. 残り時間が 5 分以下ならばリフレッシュトークンを実行する。

iOS でのアクセストークンの利用

アクセストークンの利用

アクセストークンを利用する際は事前に認証を行い、認証サーバーからアクセストークンを取得してください。アクセストークンの取得は こちら をご覧ください。

アクセストークンは DCAuthenticationContext.accessToken プロパティで取得できます。以下に取得の例を記載します。

- (NSString *)getAccessToken
{
  // KiiPhotoColleSocialConnect インスタンスを取得します。
  KiiPhotoColleSocialConnect *connect =
    [KiiPhotoColleSocialConnect sharedInstance];

  // KiiCloudPhotoColle インスタンスを取得します。
  KiiCloudPhotoColle *kiiPhotoColle = connect.kiiCloudPhotoColle;

  // DCPhotoColle インスタンスを取得します。
  DCPhotoColle *photocolle = kiiPhotoColle.photocolle;

  // DCAuthenticationContext インスタンスを取得します。
  DCAuthenticationContext *context = photocolle.dcAuthenticationContext;

  // アクセストークンを取得します。
  return context.accessToken;
}

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

  1. [KiiPhotoColleSocialConnect sharedInstance] メソッドを実行して、 KiiPhotoColleSocialConnect インスタンスを取得する。
  2. KiiPhotoColleSocialConnect インスタンスから KiiCloudPhotoColle インスタンスを取得する。
  3. KiiCloudPhotoColle インスタンスから DCPhotoColle インスタンスを取得する。
  4. DCPhotoColle インスタンスから DCAuthenticationContext インスタンスを取得する。
  5. DCAuthenticationContext.accessToken プロパティからアクセストークンを取得する。

アクセストークンの更新

// KiiPhotoColleSocialConnect インスタンスを取得します。
KiiPhotoColleSocialConnect *connect =
  [KiiPhotoColleSocialConnect sharedInstance];

// KiiCloudPhotoColle インスタンスを取得します。
KiiCloudPhotoColle *kiiPhotoColle = connect.kiiCloudPhotoColle;

// DCPhotoColle インスタンスを取得します。
DCPhotoColle *photocolle = kiiPhotoColle.photocolle;

// DCAuthenticationContext インスタンスを取得します。
DCAuthenticationContext *context = photocolle.dcAuthenticationContext;

if ([context remainingTimeInSeconds] > 300) {
  // アクセストークンの有効期限まで 5 分以上あります。
  // このアクセストークンを使って PhotoColle ネットワークにアクセス
  // 可能です。どの程度の残り時間でアクセストークンのリフレッシュ
  // を行うかはアプリケーションに依存します。
  return;
}

// アクセストークンをリフレッシュします。
[DCAuthority
  refreshTokenWithAuthenticationContext:context
                                  block:^(DCAuthenticationContext * context,
                                          NSError *error) {
    if (error != nil) {
      // アクセストークンのリフレッシュに失敗しました。
      // 必要ならば authenticateOnNavigationController メソッドで
      // 再度認証してください。
      return;
    }

    // アクセストークンのリフレッシュに成功しました。
    // DCAuthenticationContext の accessToken を利用して、
    // NTT docomo のサービスにアクセスできます。
  }
];

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

  1. [KiiPhotoColleSocialConnect sharedInstance] メソッドを実行して、 KiiPhotoColleSocialConnect インスタンスを取得する。
  2. KiiPhotoColleSocialConnect インスタンスから KiiCloudPhotoColle インスタンスを取得する。
  3. KiiCloudPhotoColle インスタンスから DCPhotoColle インスタンスを取得する。
  4. DCPhotoColle インスタンスから DCAuthenticationContext インスタンスを取得する。
  5. [DCAuthenticationContext remainingTimeInSeconds] で残り時間を確認する。
  6. 残り時間が 5 分以下ならばリフレッシュトークンを実行する。