ドコモ d フォトとの連携

d アカウント連携を有効にすると、NTT ドコモが提供する d フォトサービス のデータにアクセスできます。

具体的には、d フォトサービスのコンテンツである写真や動画に対して、次のように相互にアクセスできるようになります。

d フォトサービスとの連携については、こちら もご参照ください。

連携の準備

d フォト連携を有効にするには、Kii PhotoColle SDK の導入・設定が必要です。詳細については Kii PhotoColle SDK の導入 を参照してください。

また、ユーザーアカウントを d アカウントを使って作成する必要があります。詳細については d アカウントとの連携 を参照してください。

Android での NTT ドコモ d フォトとの連携

コンテンツのアップロード

コンテンツをアップロードする例を以下に挙げます。

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

// アップロードするファイルのリファレンスを作成します。
File file = new File(Environment.getExternalStorageDirectory(), "sample.jpg");

// KiiUploader インスタンスを作成します。
KiiUploader uploader = connect.getKiiCloudPhotocolle().uploader(getApplicationContext(), file);

try {
  // ファイルをアップロードします。
  uploader.transfer(null);
} catch (AlreadyStartedException e) {
  // すでにアップロード処理を実行中です。
} catch (SuspendedException e) {
  // アップロードが中断されました(例:ネットワークエラーや、ユーザーによる中断処理)。
} catch (TerminatedException e) {
  // すでにアップロードが終了しています(例:アップロード対象ファイルが見つからない、ユーザーによる停止処理)。
} catch (StateStoreAccessException e) {
  // ローカルストレージへのアクセスに失敗しました。
}

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

  • アップロード対象ファイルのリファレンスを作成。
  • 作成したファイルのリファレンスを指定して uploader メソッドを実行し、KiiUploader インスタンスを作成。
  • transfer メソッドを実行してファイルのアップロードを開始。

何らかの理由によりアップロードが中断した場合は SuspendedException が発生します。この場合、中断箇所よりアップロードの再開を行うことができます。

アップロードの再開

中断したファイルアップロードを再開する例を以下に挙げます。

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

// PhotoColleRTransferManager を取得します。
PhotoColleRTransferManager manager = connect.getKiiCloudPhotocolle().getTransferManager();

List<KiiUploader> uploaders = null;
try {
  // 全ての KiiUploader インスタンスの一覧を取得します。
  uploaders = manager.listUploadEntries(getApplicationContext());
} catch (StateStoreAccessException e1){
    // ローカルストレージへのアクセスに失敗しました。
}

// アップロードを再開したい KiiUploader を選択します。
// この例では簡略化のため、リストの先頭にある KiiUploader を選択します。
KiiUploader uploader = uploaders.get(0);

try {
  // ファイルのアップロードを再開します。
  uploader.transfer(null);
} catch (AlreadyStartedException e) {
  // すでにアップロード処理を実行中です。
} catch (SuspendedException e) {
  // アップロードが中断されました(例:ネットワークエラーや、ユーザーによる中断処理)。
} catch (TerminatedException e) {
  // すでにアップロードが終了しています(例:アップロード対象ファイルが見つからない、ユーザーによる停止処理)。
} catch (StateStoreAccessException e) {
  // ローカルストレージへのアクセスに失敗しました。
}

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

  • getTransferManager メソッドを実行して KiiRTransferManager インスタンスを作成。
  • listUploadEntries メソッドを実行して KiiUploader インスタンス一覧を取得。
  • 再開する KiiUploader インスタンスの transfer メソッドを実行して、アップロードを再開。

ファイルアップロードの中断

現在進行中のファイルアップロードは、手動で中断できます。ファイルアップロードを中断する例を以下に挙げます。

try {
  // ファイルのアップロードを中断します。
  mUploader.suspend(null);
} catch (NoEntryException e) {
  // アップローダーに紐付くエントリーが存在しません。ほとんどの場合はすでにアップロードが終了していることが理由です。
} catch (StateStoreAccessException e) {
  // ローカルストレージへのアクセスに失敗しました。
}

アップロードを中断するには suspend メソッドを実行します。なお、ファイルアップロードがすでに完了している場合は中断に失敗します。

ファイルアップロードの終了

進行中または中断中のファイルアップロードは、手動で終了できます。停止処理を行うと再開することはできません。ファイルアップロードを終了する例は下記のとおりです。

try {
  // ファイルのアップロードを中断します。
  mUploader.terminate(null);
} catch (NoEntryException e) {
  // アップローダーに紐付くエントリーが存在しません。ほとんどの場合はすでにアップロードが終了していることが理由です。
} catch (StateStoreAccessException e) {
  // ローカルストレージへのアクセスに失敗しました。
}

アップロードを終了するには terminate メソッドを実行します。なお、ファイルアップロードがすでに完了している場合は終了に失敗します。

コンテンツのダウンロード

コンテンツのダウンロードは、次の 2 段階で行います。

  1. サーバーよりコンテンツ ID リストを取得して、ダウンロードするコンテンツの ID を特定します。コンテンツ ID リストには以下の情報が含まれています。

    • コンテンツ ID
    • ファイル名
    • コンテンツ種別(画像/動画/スライドムービー)
    • 撮影日時
    • 更新日時
    • アップロード日時
    • ファイルサイズ

    コンテンツ ID リストの内容詳細は こちら をご参照ください。

  2. コンテンツ ID 指定でコンテンツ情報(サムネイル、リサイズ画像/動画、原本画像/動画)を取得します。

    d フォトサービスでは、アップロードした画像を元にスライドムービーを作成できます。また、アップロードしたコンテンツに対して、自動的にサムネイルやリサイズ画像/動画が作成されます。

    それぞれのコンテンツで自動作成されるアイテムを以下の表にまとめます。

    コンテンツ種別 サムネイル? リサイズ画像? リサイズ動画?
    画像 作成される 作成される 作成されない
    動画 作成される 作成される 作成される
    スライドムービー 作成される 作成される 作成されない

コンテンツ ID リストの取得

ユーザーが保持しているコンテンツのコンテンツ ID リストは getContentIDList メソッドを実行して取得します。

ListResponse<ContentInfo> infoList = photoColle.getContentIDList(
    FileType.IMAGE, false, null, null, null,
    SortType.CREATION_DATETIME_ASC);

getContentIDList メソッドの第 1 パラメータには、リストを取得するコンテンツのコンテンツ種別を指定します。指定可能な値は以下のとおりです。

  • FileType.IMAGE:画像のみ
  • FileType.VIDEO:動画のみ
  • FileType.SLIDE_MOVIE:(サーバーで作成した)スライドムービーのみ
  • FileType.ALL:全ての種別

第 6 パラメータには、リストのソート順を指定します。たとえば撮影日時や更新日時などで昇順/降順にリストをソートできます(上記の例では撮影日時で昇順にソートしています)。詳細は こちら をご参照ください。

また、第 3 パラメータに日付フィルターを指定すると、指定日時に基づく差分取得ができます。以下に差分取得を行う例を挙げます。

// ユーザーから日時を取得します。
Date date = getUserSelectedDate();

// 指定日時以降にアップロードされたコンテンツを選択するフィルターを作成します。
UploadDateFilter filter = new UploadDateFilter(date);

// フィルターに一致するコンテンツの ID リストを取得します。
ListResponse<ContentInfo> infoList = photoColle.getContentIDList(
    FileType.IMAGE, false, filter, null, null,
    SortType.CREATION_DATETIME_ASC);

この例では、アップロード日時が指定日時かそれ以降のコンテンツの ID リストを取得しています。日付フィルターの詳細は こちら をご参照ください。

この他、取得するリストの最大数などを指定することもできます。詳細は こちら をご参照ください。

タグ指定による取得

d フォトサービスでは、コンテンツをアップロードすると自動的にいくつかのタグが付与されます。コンテンツ ID リストを取得する際に、これらのタグを使って取得対象を絞り込むことができます。

こちらに記載するタグ情報を使った機能の利用には、追加で NTT ドコモに API 利用申請が必要です。詳しくは こちら の「d フォト API 仕様書」をご参照ください。

まず、次のようにサーバーより現在利用可能なタグ一覧を取得します。

ListResponse<Tag> tagList =  photoColle.getTagIDList(Category.ALL,
    FileType.IMAGE, null);

次に、取得したタグ一覧より、コンテンツ ID リストを取得したいコンテンツのタグを選択します。選択後、これらを指定して getContentIDListWithTags メソッドを実行し、コンテンツ ID リストを取得します。この際、タグは最大で 5 つまで指定可能です。

以下に、タグ指定によるコンテンツ ID リスト取得の例を挙げます。

// 名前が "John" であるタグのリストを取得します。
List<TagHead> criteriaList = new ArrayList<TagHead>();
for (Tag tag : tagList) {
  if ("John".equals(tag.getName())) {
    criteriaList.add(tag);
    break;
  }
}

// タグ "John" が付いたコンテンツの ID リストを取得します。
ListResponse<ContentInfo2> info2List = photoColle.getContentIDListWithTags(
    ProjectionType.ALL_DETAILS, FileType.IMAGE,
    criteriaList, false, null, null, null,
    SortType.CREATION_DATETIME_ASC);

for (ContentInfo2 info : info2List) {
  // タグ "John" が付いたコンテンツを操作します。
}

なお getContentIDListWithTags メソッドで取得したコンテンツ ID リストには getContentIDList で取得したものより詳細なメタデータが含まれています。詳細は こちら をご参照ください。

コンテンツ情報取得

コンテンツ情報は、コンテンツ ID を指定して取得します。

サムネイル取得

コンテンツのサムネイルを取得するには getContentThumbnailInfo メソッドを実行します。

// getGuidArray() メソッドは infoList 内の ContentInfo インスタンスから GUID を取り出し
// コンテンツの GUID のみを配列として返します。
ContentGUID[] guids = getGuidArray(infoList);

// コンテンツのサムネイルを取得します。
ContentThumbnailInfoList thumbList = photoColle.getContentThumbnailInfo(
    guids);

この例のように、複数のサムネイルを同時に取得できます。

コンテンツ本体(原本・リサイズ)取得

コンテンツ本体を取得するには getContentBodyInfo メソッドを実行します。

// 本体を取得したいコンテンツの情報を取得します。
// この例では簡略化のため、コンテンツ ID リストの先頭の ContentnInfo を選択します。
ContentInfo info = infoList.getList().get(0);
ContentBodyInfo bodyInfo = photoColle.getContentBodyInfo(
    info.getFileType(), info.getGuid(), ResizeType.ORIGINAL);

getContentBodyInfo メソッドの第 1 パラメータには、取得するコンテンツ種別を指定します。指定可能な値は以下のとおりです。

  • FileType.IMAGE:画像のみ
  • FileType.VIDEO:動画のみ
  • FileType.SLIDE_MOVIE:(サーバーで作成した)スライドムービーのみ

第 2 パラメータには、取得するコンテンツの ID を指定します。

第 3 パラメータには、取得するコンテンツのタイプ(原本なのかリサイズなのか)を指定します。以下の値が指定可能です。

  • ResizeType.ORIGINAL:原本画像/動画。全てのコンテンツ種別で指定可能です。
  • ResizeType.RESIZED_IMAGE:リサイズ画像。全てのコンテンツ種別で指定可能です。
  • ResizeType.RESIZED_MOVIE:リサイズ動画。コンテンツが動画の場合のみ指定可能です。

コンテンツ本体取得の詳細については こちら をご参照ください。

ユーティリティ

サーバー空き容量取得

サーバーの空き容量は getCapacityInfo メソッドを実行して取得します。

CapacityInfo info = photoColle.getCapacityInfo();
checkFreeSpace(info.getFreeSpace());

getCapacityInfo メソッドは、ユーザーの空き容量と最大容量をバイトで返します。詳しくは こちら をご参照ください。

サーバー削除履歴取得

サーバーから削除済みのコンテンツ一覧(削除履歴)は getContentDeletionHistory メソッドを実行して確認できます。クライアント側に取得済みのコンテンツと削除履歴を突き合わせることで、ユーザーに提示するコンテンツを最新のものできます。

ListResponse<ContentGUID> deleteInfo = photoColle.getContentDeletionHistory(
    FileType.IMAGE, null, null, null);

getContentDeletionHistory メソッドは、削除済みコンテンツの ID 一覧を返します。

第 1 パラメータには、削除履歴を取得するコンテンツの種別を指定します。指定可能な値は以下のとおりです。

  • FileType.IMAGE:画像のみ
  • FileType.VIDEO:動画のみ
  • FileType.SLIDE_MOVIE:(サーバーで作成した)スライドムービーのみ

この他、取得する削除履歴の最大数や日付による絞り込みなどもできます。詳細は こちら をご参照ください。

iOS での NTT ドコモ d フォトとの連携

コンテンツのアップロード

コンテンツをアップロードする例を以下に挙げます。

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

KiiCloudPhotoColle *photoColle = [[KiiPhotoColleSocialConnect sharedInstance] kiiCloudPhotoColle];

// アップロードするファイルのリファレンスを作成します。
NSString *fileName = @"sample.jpg";
NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:fileName];

// KiiUploader インスタンスを作成します。
KiiUploader *uploader = [photoColle uploader:path];

// Progress block を定義します。
KiiRTransferBlock progress = ^(id <KiiRTransfer> transferObject, NSError *retError) {
  KiiRTransferInfo *info = [transferObject info];
  NSLog(@"Progress : %f", (float) [info completedSizeInBytes] / [info totalSizeInBytes]);
};

NSError *error = nil;

// ファイルをアップロードします。
[uploader transferWithProgressBlock:progress andError:&error];
if (error != nil) {
  // エラーを処理します。
  NSLog(@"Transfer error happens");
}

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

  • アップロード対象ファイルのリファレンスを作成。
  • 作成したファイルのリファレンスを指定して uploader メソッドを実行し、KiiUploader インスタンスを作成。
  • transferWithProgressBlock メソッドを実行してファイルのアップロードを開始。

何らかの理由によりアップロードが中断した場合はエラーが発生します。この場合、中断箇所よりアップロードの再開を行うことができます。

アップロードの再開

中断したファイルアップロードを再開する例を以下に挙げます。

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

KiiCloudPhotoColle *photoColle = [[KiiPhotoColleSocialConnect sharedInstance] kiiCloudPhotoColle];

// KiiPhotoColleRTransferManager を取得します。
id<KiiUploadTransferManaging> manager = [photoColle uploadTransferManager];

NSError *error = nil;

// 全ての KiiUploader インスタンスの一覧を取得します。
NSArray *uploadEntries = [manager getUploadEntries:&error];
if (error != nil) {
  // エラーを処理します。
}

for (KiiUploader *uploader in uploadEntries) {
  // 転送状態が KiiRTStatus_SUSPENDED のアップロードを再開します。
  if ([[uploader info] status] == KiiRTStatus_SUSPENDED) {
    // Progress block を定義します。
    KiiRTransferBlock progress = ^(id <KiiRTransfer> transferObject, NSError *retError) {
      KiiRTransferInfo *info = [transferObject info];
      NSLog(@"Progress : %f", (float) [info completedSizeInBytes] / [info totalSizeInBytes]);
    };

    // Completion block を定義します。
    KiiRTransferBlock completion = ^(id <KiiRTransfer> transferObject, NSError *retError) {
        if (retError != nil) {
          // エラーを処理します。
          NSLog(@"Transfer error happens");
        }
    };
    // ファイルのアップロードを再開します。
    [uploader transferWithProgressBlock:progress andCompletionBlock:completion];
  }
}

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

  • uploadTransferManager メソッドを実行して KiiPhotoColleRTransferManager インスタンスを作成。
  • getUploadEntries メソッドを実行して KiiUploader インスタンス一覧を取得。
  • 再開する KiiUploader インスタンスの transferWithProgressBlock メソッドを実行して、アップロードを再開。

ファイルアップロードの中断

現在進行中のファイルアップロードは、手動で中断できます。ファイルアップロードを中断する例を以下に挙げます。

NSError *error = nil
[uploader suspend:&error];

アップロードを中断するには suspend メソッドを実行します。なお、ファイルアップロードがすでに完了している場合は中断に失敗します。

ファイルアップロードの終了

進行中または中断中のファイルアップロードは、手動で終了できます。停止処理を行うと再開することはできません。ファイルアップロードを終了する例は下記のとおりです。

NSError *error = nil
[uploader terminate:&error];

アップロードを終了するには terminate メソッドを実行します。なお、ファイルアップロードがすでに完了している場合は終了に失敗します。

コンテンツのダウンロード

コンテンツのダウンロードは、次の 2 段階で行います。

  1. サーバーよりコンテンツ ID リストを取得して、ダウンロードするコンテンツの ID を特定します。コンテンツ ID リストには以下の情報が含まれています。

    • コンテンツ ID
    • ファイル名
    • コンテンツ種別(画像/動画/スライドムービー)
    • 撮影日時
    • 更新日時
    • アップロード日時
    • ファイルサイズ

    コンテンツ ID リストの内容詳細は こちら をご参照ください。

  2. コンテンツ ID 指定でコンテンツ情報(サムネイル、リサイズ画像/動画、原本画像/動画)を取得します。

    d フォトサービスでは、アップロードした画像を元にスライドムービーを作成できます。また、アップロードしたコンテンツに対して、自動的にサムネイルやリサイズ画像/動画が作成されます。

    それぞれのコンテンツで自動作成されるアイテムを以下の表にまとめます。

    コンテンツ種別 サムネイル? リサイズ画像? リサイズ動画?
    画像 作成される 作成される 作成されない
    動画 作成される 作成される 作成される
    スライドムービー 作成される 作成される 作成されない

コンテンツ ID リストの取得

ユーザーが保持しているコンテンツのコンテンツ ID リストは getContentIDList メソッドを実行して取得します。

NSError *error = nil;
DCContentInfoListResponse *infoList =
  [self.photocolle getContentIDListWithFileType:DCFILETYPE_IMAGE
                                     forDustbox:false
                                     dateFilter:nil
                                     maxResults:nil
                                          start:nil
                                       sortType:DCSORTTYPE_CREATION_DATETIME_ASC
                                          error:&error];

getContentIDListWithFileType メソッドの第 1 パラメータには、リストを取得するコンテンツのコンテンツ種別を指定します。指定可能な値は以下のとおりです。

  • DCFILETYPE_IMAGE:画像のみ
  • DCFILETYPE_VIDEO:動画のみ
  • DCFILETYPE_SLIDE_MOVIE:(サーバーで作成した)スライドムービーのみ
  • DCFILETYPE_ALL:全ての種別

第 6 パラメータには、リストのソート順を指定します。たとえば撮影日時や更新日時などで昇順/降順にリストをソートできます(上記の例では撮影日時で昇順にソートしています)。詳細は こちら をご参照ください。

また、第 3 パラメータに日付フィルターを指定すると、指定日時に基づく差分取得ができます。以下に差分取得を行う例を挙げます。

// ユーザーから日時を取得します。
NSDate *date = [self getUserSelectedDate];

// 指定日時以降にアップロードされたコンテンツを選択するフィルターを作成します。
DCUploadDateFilter *filter = [[DCUploadDateFilter alloc] initWithDate:date];

// KiiCloudPhotoColle インスタンスから DCPhotoColle インスタンスを取得します。
// KiiCloudPhotoColle クラスは DCPhotoColle をプロパティとして保持します。
DCPhotoColle *photocolle = self.kiiCloudPhotoColle.photocolle;

NSError *error = nil;

// フィルターに一致するコンテンツの ID リストを取得します。
DCContentInfoListResponse *response =
  [photocolle getContentIDListWithFileType:DCFILETYPE_IMAGE
                                forDustbox:NO
                                dateFilter:filter
                                maxResults:nil
                                     start:nil
                                  sortType:DCSORTTYPE_CREATION_DATETIME_ASC
                                     error:&error];

この例では、アップロード日時が指定日時かそれ以降のコンテンツの ID リストを取得しています。日付フィルターの詳細は こちら および こちら をご参照ください。

この他、取得するリストの最大数などを指定することもできます。詳細は こちら をご参照ください。

タグ指定による取得

d フォトサービスでは、コンテンツをアップロードすると自動的にいくつかのタグが付与されます。コンテンツ ID リストを取得する際に、これらのタグを使って取得対象を絞り込むことができます。

こちらに記載するタグ情報を使った機能の利用には、追加で NTT ドコモに API 利用申請が必要です。詳しくは こちら の「d フォト API 仕様書」をご参照ください。

まず、次のようにサーバーより現在利用可能なタグ一覧を取得します。

NSError *error = nil;
DCTagListResponse *tagList =
  [self.photocolle getTagIDListWithCategory:DCCATEGORY_ALL
                                   fileType:DCFILETYPE_IMAGE
                            minDateModified:nil
                                      error:&error];

次に、取得したタグ一覧より、コンテンツ ID リストを取得したいコンテンツのタグを選択します。選択後、これらを指定して getContentIDListWithTagsWithProjectionType メソッドを実行し、コンテンツ ID リストを取得します。この際、タグは最大で 5 つまで指定可能です。

以下に、タグ指定によるコンテンツ ID リスト取得の例を挙げます。

// 名前が "John" であるタグのリストを取得します。
NSMutableArray *criteriaList = [NSMutableArray array];
for (DCTag *tag in tagList.list) {
  if ([@"John" isEqualToString:[tag.name] != NO) {
      [criteriaList addObject:tag];
      break;
  }
}

NSError *error = nil;

// タグ "John" が付いたコンテンツの ID リストを取得します。
DCDetailedContentInfoListResponse *detailedInfoList =
  [self.photocolle getContentIDListWithTagsWithProjectionType:DCPROJECTIONTYPE_ALL_DETAILS
                                                     fileType:DCFILETYPE_IMAGE
                                                 criteriaList:criteriaList
                                                   forDustbox:false
                                                   dateFilter:nil
                                                   maxResults:nil
                                                        start:nil
                                                     sortType:DCSORTTYPE_CREATION_DATETIME_ASC
                                                        error:&error];

for (DCDetailedContentInfo *info in detailedInfoList.list) {
  // タグ "John" が付いたコンテンツを操作します。
}

なお getContentIDListWithTagsWithProjectionType メソッドで取得したコンテンツ ID リストには getContentIDListWithFileType で取得したものより詳細なメタデータが含まれています。詳細は こちら をご参照ください。

コンテンツ情報取得

コンテンツ情報は、コンテンツ ID を指定して取得します。

サムネイル取得

コンテンツのサムネイルを取得するには getContentThumbnailInfoWithContentGUIDArray メソッドを実行します。

NSError *error = nil;

// getGuidArray:infoList メソッドは infoList 内の ContentInfo インスタンスから GUID を取り出し
// コンテンツの GUID のみを配列として返します。
NSArray *guids = [self getGuidArray:infoList];

// コンテンツのサムネイルを取得します。
DCContentThumbnailInfoList *thumbList =
  [self.photocolle getContentThumbnailInfoWithContentGUIDArray:guids
                                                         error:&error];

この例のように、複数のサムネイルを同時に取得できます。

コンテンツ本体(原本・リサイズ)取得

コンテンツ本体を取得するには getContentBodyInfo メソッドを実行します。

NSError *error = nil;

// 本体を取得したいコンテンツの情報を取得します。
// この例では簡略化のため、コンテンツ ID リストの先頭の ContentnInfo を選択します。
DCContentInfo *info = [infoList.list objectAtIndex:0];
DCContentBodyInfo *bodyInfo =
  [self.photocolle getContentBodyInfoWithFileType:info.fileType
                                      contentGUID:info.guid
                                       resizeType:DCRESIZETYPE_ORIGINAL
                                            error:&error];

getContentBodyInfoWithFileType メソッドの第 1 パラメータには、取得するコンテンツ種別を指定します。指定可能な値は以下のとおりです。

  • DCFILETYPE_IMAGE:画像のみ
  • DCFILETYPE_VIDEO:動画のみ
  • DCFILETYPE_SLIDE_MOVIE:(サーバーで作成した)スライドムービーのみ

第 2 パラメータには、取得するコンテンツの ID を指定します。

第 3 パラメータには、取得するコンテンツのタイプ(原本なのかリサイズなのか)を指定します。以下の値が指定可能です。

  • DCRESIZETYPE_ORIGINAL:原本画像/動画。全てのコンテンツ種別で指定可能です。
  • DCRESIZETYPE_RESIZED_IMAGE:リサイズ画像。全てのコンテンツ種別で指定可能です。
  • DCRESIZETYPE_RESIZED_VIDEO:リサイズ動画。コンテンツが動画の場合のみ指定可能です。

コンテンツ本体取得の詳細については こちら をご参照ください。

ユーティリティ

サーバー空き容量取得

サーバーの空き容量は getCapacityInfo メソッドを実行して取得します。

NSError *error = nil;
DCCapacityInfo *info = [self.photocolle getCapacityInfoWithError:&error];
if (error == nil) {
  [self checkFreeSpace:info.freeSpace];
} else {
  // エラーを処理します。
}

getCapacityInfoWithError メソッドは、ユーザーの空き容量と最大容量をバイトで返します。詳しくは こちら をご参照ください。

サーバー削除履歴取得

サーバーから削除済みのコンテンツ一覧(削除履歴)は getContentDeletionHistory メソッドを実行して確認できます。クライアント側に取得済みのコンテンツと削除履歴を突き合わせることで、ユーザーに提示するコンテンツを最新のものできます。

NSError *error = nil;
DCContentGUIDListResponse *deleteInfo =
  [self.photocolle getContentDeletionHistoryWithFileType:DCFILETYPE_IMAGE
                                          minDateDeleted:nil
                                              maxResults:nil
                                                   start:nil
                                                   error:&error];

getContentDeletionHistoryWithFileType メソッドは、削除済みコンテンツの ID 一覧を返します。

第 1 パラメータには、削除履歴を取得するコンテンツの種別を指定します。指定可能な値は以下のとおりです。

  • DCFILETYPE_IMAGE:画像のみ
  • DCFILETYPE_VIDEO:動画のみ
  • DCFILETYPE_SLIDE_MOVIE:(サーバーで作成した)スライドムービーのみ

この他、取得する削除履歴の最大数や日付による絞り込みなどもできます。詳細は こちら をご参照ください。