앱에서 만든 앨범을 사용자 간에 공유할 수 있으며 댓글을 달거나 앨범에 자신의 미디어 항목을 기부하도록 허용할 수 있습니다.
Google 포토 라이브러리 API를 통해 앨범을 공유하려면 앱에서 다음을 실행해야 합니다.
- 사용자 대신 앨범을 만듭니다.
- 앨범을 공유됨으로 설정합니다.
필수 인증 범위
콘텐츠를 공유하려면 앱에서 photoslibrary.sharing
승인 범위가 아닙니다.
앨범 공유
앨범을 공유하기 전에 다음 사항을 고려하세요.
- 앱은 자신이 만든 앨범만 공유할 수 있습니다. 다른 앱에서 만든 앨범 내 앱에서 공유할 수 없습니다.
- 앱이 Library API를 통해 앨범을 공유하면 공유 가능한 URL 누구나 앨범에 액세스하는 데 사용할 수 있습니다.
- API를 통해 공유한 앨범의 경우 앨범 소유자가 링크 공유 사용 중지 Google 포토 앱에서 앨범 공유를 취소할 수 있습니다. 앱에 신규 사용자를 참여시키지 못하게 됩니다.
앨범을 공유하려면 다음 단계를 따르세요.
- UX 가이드라인 사용자로부터 공유 앨범 생성에 대한 명시적 동의를 얻어야 합니다.
- 앨범 만들기
albumId를 기록합니다. 이미 앨범을 만든 경우 다음을 기준으로albumId검색 사용자의 앨범 나열. - 다음을 사용하여
albums.share를 호출합니다. 관련albumId및 원하는 옵션을 공유하고 설정합니다. - 기록:
shareToken드림 값이 됩니다. 공유 토큰은 공유 앨범의 식별자입니다. 다른 사용자 계정에서 사용할 수 있습니다. - 이제 다른 사용자가 여러분의 앱에 인증할 수 있습니다.
가입,
탈퇴 또는
세부정보 검색
공유 앨범의
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"
}
}자바
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 이
속성은 sharing
listing 또는
앨범을 가져옵니다.
다음 표에는
shareInfo 드림
속성:
| 속성 | |
|---|---|
sharedAlbumOptions |
사용자가 권한을 부여할지 여부를 설명하는 옵션 미디어 추가 공유 앨범에 항목을 추가하거나 댓글을 다는 방법 |
shareableUrl |
공유된 Google 포토 앨범 링크 링크가 있는 모든 사용자가 앨범의 콘텐츠를 볼 수 없으므로 신중하게 처리해야 합니다.
소유자가 링크를 사용 중지하면 |
shareToken |
Kubernetes에서 가입, 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 오류 상태 코드가 표시됩니다.
자바
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 }
공유 앨범 검색 및 토큰 공유
공유 앨범 세부정보 앱이 앨범을 공유하면 반환됩니다. 다음과 같은 작업을 할 수 있습니다. 나중에 다음과 같은 방법으로 해당 세부정보를 가져올 수도 있습니다.
현재 앱에 연결된 사용자가 소유자이거나 앨범:
- 다음과 같이
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
세부정보를 참조하세요.
자바
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를 반환합니다.
사용자를 대신하여 앱에 참여했습니다.
자바
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참입니다. - 앱에 연결된 사용자가 앨범의 소유자가 아닙니다. 즉,
앨범
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 오류 상태 코드가 표시됩니다.
자바
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"
}
}