アプリで作成されたアルバムは、必要に応じてユーザー間で共有できます。 アルバムへのユーザーのコメントやメディア アイテムの投稿ができます。
Google Photos Library API を使用してアルバムを共有するには、アプリで次の操作を行う必要があります。
- ユーザーに代わってアルバムを作成します。
- そのアルバムを共有するよう設定します。
必要な認証スコープ
コンテンツを共有するには、アプリで photoslibrary.sharing
をリクエストする必要があります。
認可スコープ。
アルバムを共有する
アルバムを共有する前に、次の点を考慮してください。
- アプリが共有できるのは、作成したアルバムのみです。他のアプリで作成されたアルバム このアプリでは共有できません。
- アプリが Library API を介してアルバムを共有すると、 共有可能な URL が生成されます。
- API 経由で共有されたアルバムの場合、アルバムのオーナーは リンクの共有をオフにする Google フォト アプリでアルバムの共有を解除したり、共有を停止したりすると、 新規ユーザーを追加できないようにすることができます。
アルバムを共有するには:
- 詳しくは、 UX ガイドライン 共有アルバムの作成について、ユーザーから明示的な同意を得る。
- アルバムを作成します。
その
albumId
を記録します。すでにアルバムを作成している場合は、albumId
を取得する ユーザーのアルバムをリストする。 - 以下を使用して
albums.share
を呼び出します。 関連するalbumId
、および 共有したい共有オプション あります。 - 録画
shareToken
値が返されます。共有トークンは共有アルバムの識別子です。 複数の異なるユーザーアカウントで使用できます - 別のユーザーがアプリで認証できるようになり、
参加、
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 フォト アルバムへのリンク。リンクを知っている全員が アルバムの内容を表示するため、慎重に扱う必要があります。
所有者がリンクを無効にした場合、 |
shareToken |
このトークンは、 参加、 leave、 または取得 他のユーザーの代理人として、共有アルバムの詳細を 所有者がリンクを無効にした場合、 |
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 です。 - 共有トークンは有効です。
- アルバムの
shareInfo
のisJoinable
フィールドが 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 である。 - アプリに接続したユーザーは、アルバムのオーナーではありません。つまり、
アルバムの
shareInfo
のisOwned
フィールドが 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" } }