メディアの共有

アプリで作成されたアルバムは、必要に応じてユーザー間で共有できます。 アルバムへのユーザーのコメントやメディア アイテムの投稿ができます。

Google Photos Library API を使用してアルバムを共有するには、アプリで次の操作を行う必要があります。

  1. ユーザーに代わってアルバムを作成します。
  2. そのアルバムを共有するよう設定します。
で確認できます。

必要な認証スコープ

コンテンツを共有するには、アプリで photoslibrary.sharing をリクエストする必要があります。 認可スコープ

アルバムを共有する

アルバムを共有する前に、次の点を考慮してください。

  • アプリが共有できるのは、作成したアルバムのみです。他のアプリで作成されたアルバム このアプリでは共有できません。
  • アプリが Library API を介してアルバムを共有すると、 共有可能な URL が生成されます。
  • API 経由で共有されたアルバムの場合、アルバムのオーナーは リンクの共有をオフにする Google フォト アプリでアルバムの共有を解除したり、共有を停止したりすると、 新規ユーザーを追加できないようにすることができます。

アルバムを共有するには:

  1. 詳しくは、 UX ガイドライン 共有アルバムの作成について、ユーザーから明示的な同意を得る。
  2. アルバムを作成します。 その albumId を記録します。すでにアルバムを作成している場合は、 albumId を取得する ユーザーのアルバムをリストする
  3. 以下を使用して albums.share を呼び出します。 関連する albumId、および 共有したい共有オプション あります。
  4. 録画 shareToken 値が返されます。共有トークンは共有アルバムの識別子です。 複数の異なるユーザーアカウントで使用できます
  5. 別のユーザーがアプリで認証できるようになり、 参加leave、または 詳細を取得 shareToken を使用して共有アルバムのアルバムを作成する

共有オプション

[ sharedAlbumOptions パラメータを指定します。オプションが明示的に設定されていない場合は、デフォルト値が使用されます。

プロパティ デフォルト値 説明
isCollaborative false 他の Google フォト ユーザーがスペースにコンテンツを追加できるかどうかを設定します 共有アルバムに移動します
isCommentable false 他の Google フォト ユーザーが写真にコメントできるかどうかを設定します 共有アルバムに移動します

リクエスト例

次のリクエストでは、オプションを指定して albums.share を呼び出し、アルバムを共有します。 shareInfo プロパティ アルバムの情報について説明するレスポンスで返されます。 共有プロパティをご覧ください。

REST

アルバムを共有するための POST リクエスト ヘッダーは次のとおりです。

POST https://photoslibrary.googleapis.com/v1/albums/album-id:share
Content-type: application/json
Authorization: Bearer oauth2-token

リクエストの本文で、共有オプションを指定します。

{
  "sharedAlbumOptions": {
    "isCollaborative": "true",
    "isCommentable": "true"
  }
}

このリクエストにより、次のレスポンスが返されます。

{
  "shareInfo": {
    "sharedAlbumOptions": {
      "isCollaborative": "true",
      "isCommentable": "true"
    },
    "shareableUrl": "shareable-url",
    "shareToken": "share-token",
    "isJoinable": "true-if-users-can-join-album",
    "isJoined": "true-if-user-is-joined-to-album",
    "isOwned": "true-if-user-owns-album"
  }
}

Java

try {

  SharedAlbumOptions options =
          // Set the options for the album you want to share
          SharedAlbumOptions.newBuilder()
          .setIsCollaborative(true)
          .setIsCommentable(true)
          .build();
  ShareAlbumResponse response = photosLibraryClient.shareAlbum(albumId, options);

  // The response contains the shareInfo object, a url, and a token for sharing
  ShareInfo info = response.getShareInfo();
  // Link to the shared album
  String url = info.getShareableUrl();
  String shareToken = info
  // The share token which other users of your app can use to join the album you shared
      .getShareToken();
  SharedAlbumOptions sharedOptions = info
      // The options set when sharing this album
      .getSharedAlbumOptions();

} catch (ApiException e) {
  // Handle error
}

PHP

// Set the options for the album you want to share
$options = new SharedAlbumOptions();
$options->setIsCollaborative(true);
$options->setIsCommentable(true);
try {
    $response = $photosLibraryClient->shareAlbum($albumId, ['sharedAlbumOptions' => $options]);
    // The response contains the shareInfo object, a url, and a token for sharing
    $shareInfo = $response->getShareInfo();
    // Link to the shared album
    $url = $shareInfo->getShareableUrl();
    // The share token which other users of your app can use to join the album you shared
    $shareToken = $shareInfo->getShareToken();
    // The options set when sharing this album
    $sharedOptions = $shareInfo->getSharedAlbumOptions();
} catch (\Google\ApiCore\ApiException $e) {
    // Handle error
}

共有アルバムのプロパティ

アプリによって作成、共有されたアルバムについては、 album を返す 追加のプロパティを含める場合は shareInfo。この 共有の場合にプロパティが返されます。 リスティング アルバムを取得しています。

次の表に、 shareInfo プロパティ:

プロパティ
sharedAlbumOptions 次の権限があるかどうかを示すオプション メディアを追加 共有アルバムにアイテムを追加したり、共有アルバムにコメントしたりします
shareableUrl

共有の Google フォト アルバムへのリンク。リンクを知っている全員が アルバムの内容を表示するため、慎重に扱う必要があります。

shareableUrl フィールドが返されるのは、アルバムが リンクの共有 オンになっている。ユーザーがスペース内のアルバムに リンク共有されていない場合は、アルバムのproductUrlを使用して次のことができます アクセスしてください。

所有者がリンクを無効にした場合、shareableUrl は無効になります Google フォト アプリで共有している場合、またはアルバムが共有されていない場合。

shareToken

このトークンは、 参加leave、 または取得 他のユーザーの代理人として、共有アルバムの詳細

所有者がリンクを無効にした場合、shareToken は無効になります Google フォト アプリで共有している場合、またはアルバムが共有されていない場合。

isJoinable ユーザーがアルバムに参加できる場合は True
isJoined ユーザーがアルバムに参加している場合は True。これは常に アルバムのオーナーについて true を返します。
isOwned ユーザーがアルバムを所有している場合は、True

アルバムの共有を解除する

アプリで以前に共有したアルバムの共有を解除するには、 albums.unshare: アルバムの「albumId」。

アルバムの共有停止に加えて、以下の影響があります。 目的:

  • オーナー以外のユーザーはアルバムにアクセスできなくなります。これには、 アルバムを持っていた Google フォトアプリを使って 共有することもできます
  • オーナー以外が追加したコンテンツはすべてアルバムから削除されます。
  • ユーザーが以前にアルバムの内容をライブラリに追加したことがある場合は、 コンテンツはライブラリに保持されます。
  • アルバムの共有トークンと共有可能な URL が無効になります。

リクエスト例

REST

アルバムの共有を停止する POST リクエスト ヘッダーは次のとおりです。

POST https://photoslibrary.googleapis.com/v1/albums/album-id:unshare
Content-type: application/json
Authorization: Bearer oauth2-token

リクエストの本文は空にする必要があります。

リクエストが成功すると、HTTP を含む空のレスポンスが返されます。 成功ステータス コード。リクエストが成功しなかった場合は、HTTP レスポンスの エラー ステータス コードとエラー メッセージで構成されます。

Java

try {
  // If this call is not successful, an exception is raised
  photosLibraryClient.unshareAlbum(albumId);
} catch (ApiException e) {
  // Handle error
}

PHP

try {
    // Mark the album as private and no longer shared
    // If this call is not successful, an exception is raised
    $photosLibraryClient->unshareAlbum($albumId);
} catch (\Google\ApiCore\ApiException $e) {
    // Handle error
}

共有アルバムと共有トークンの取得

共有アルバムの詳細 アプリがアルバムを共有するときに返されます。Google Chat では また、後で以下の方法でこれらの詳細を取得できます。

現在アプリに接続しているユーザーが所有者の場合、または アルバム:

  • albums.get で以下を使用: 関連するalbumId
  • albums.list を使用する場合、 アルバム内のメディア アイテムです。
  • あり sharedAlbums.list このメソッドは、ユーザーが参加している、または所有しているすべての共有アルバムを返します。取得するには、 アプリが作成したアルバムのみを表示するには、 excludeNonAppCreatedData パラメータを指定します。
  • 参加者: sharedAlbums.get 共有トークンを使用します。

現在アプリに接続しているユーザーがアルバムに参加していない場合は、 共有アルバムの詳細を sharedAlbums.get: できます。

リクエスト例

REST

shareToken のアルバムを取得するリクエストは次のとおりです。

GET https://photoslibrary.googleapis.com/v1/sharedAlbums/share-token

リクエストが成功すると、共有された <ph type="x-smartling-placeholder"></ph> album 詳細を確認してください。

Java

try {
  // Get a shared album from its share token
  Album sharedAlbum = photosLibraryClient.getSharedAlbum(shareToken);

  String id = sharedAlbum.getId();
  String title = sharedAlbum.getTitle();
  // ...

} catch (ApiException e) {
  // Handle error
}

PHP

try {
    // Get the album from a share token
    $album = $photosLibraryClient->getSharedAlbum($shareToken);

    // Get some properties of an album
    $productUrl = $album->getProductUrl();
    $title = $album->getTitle();

} catch (\Google\ApiCore\ApiException $e) {
    // Handle error
}

共有アルバムへの参加

アプリは、ユーザーに代わってアルバムの共有を使用して共有アルバムに参加できます あります。これを行うには、次の条件を満たす必要があります。

  • お客様のアプリは、 作成して共有した できます。
  • アルバムに参加しようとしているユーザーがオーナーではありません。つまり、 アルバムの isOwned フィールド shareInfo false です。
  • 共有トークンは有効です。
  • アルバムの shareInfoisJoinable フィールドが true である。
で確認できます。

REST

共有アルバムに参加するための POST リクエスト ヘッダーは次のとおりです。

POST https://photoslibrary.googleapis.com/v1/sharedAlbums:join
Content-type: application/json
Authorization: Bearer oauth2-token

リクエストの本文で、shareToken を指定します。

{
  "shareToken": "share-token"
}

POST リクエストは、共有 album を返します。 アプリがユーザーに代わって参加しました。

Java

try {
  // Join the shared album using the share token obtained when sharing the album
  // If this call is not successful, an exception is raised
  JoinSharedAlbumResponse response = photosLibraryClient.joinSharedAlbum(shareToken);
  Album joinedAlbum = response.getAlbum();
} catch (ApiException e) {
  // Handle error
}

PHP

try {
    $response = $photosLibraryClient->joinSharedAlbum($shareToken);
    // Join the shared album using the share token obtained when sharing the album
    // If this call is not successful, an exception is raised
    $joinedAlbum = $response->getAlbum();
} catch (\Google\ApiCore\ApiException $e) {
    // Handle error
}

共有アルバムから退出する

アプリは、アルバムの共有機能を使用して、ユーザーに代わって共有アルバムから退出できます。 あります。これを行うには、次の条件を満たす必要があります。

  • アプリによってアルバムが作成され、共有されました。
  • ユーザーは現在アルバムに参加しています。つまり、isJoined フィールドです。 アルバムの shareInfo に指定されている値が true である。
  • アプリに接続したユーザーは、アルバムのオーナーではありません。つまり、 アルバムの shareInfoisOwned フィールドが false です。

REST

共有アルバムから退出するための POST リクエスト ヘッダーは次のとおりです。

POST https://photoslibrary.googleapis.com/v1/sharedAlbums:leave
Content-type: application/json
Authorization: Bearer oauth2-token

リクエストの本文で、shareToken を指定します。

{
  "shareToken": "share-token"
}

リクエストが成功すると、HTTP を含む空のレスポンスが返されます。 成功ステータス コード。リクエストが成功しなかった場合は、HTTP レスポンスの エラー ステータス コードとエラー メッセージで構成されます。

Java

try {
  // Leave a shared album using its share token
  // If this call is not successful, an exception is raised
  photosLibraryClient.leaveSharedAlbum(shareToken);
} catch (ApiException e) {
  // Handle error
}

PHP

try {
    // Leave the shared album using the share token obtained when sharing the album
    // If this call is not successful, an exception is raised
    $photosLibraryClient->leaveSharedAlbum($shareToken);
} catch (\Google\ApiCore\ApiException $e) {
    // Handle error
}

共有メディア アイテムのプロパティ

以下に属するメディア アイテム アプリで共有されているアルバムに、追加のプロパティ、 contributorInfo。 このプロパティは、 共有アルバムのコンテンツ

contributorInfo プロパティには、メディアを追加したユーザーの名前が含まれます。 アイテムがアルバムに追加され、 プロフィールのベース URL 説明します。

次の例をご覧ください。

{
  "id: "media-item-id",
  ...,
  "mediaMetadata": {
    ...
  }
  "contributorInfo": {
    "profilePictureBaseUrl": "profile-picture-base-url_use-only-with-parameters",
    "displayName": "name-of-user"
  }
}