미디어 공유

앱에서 만든 앨범을 사용자 간에 공유할 수 있으며 댓글을 달거나 앨범에 자신의 미디어 항목을 기부하도록 허용할 수 있습니다.

Google 포토 라이브러리 API를 통해 앨범을 공유하려면 앱에서 다음을 실행해야 합니다.

  1. 사용자 대신 앨범을 만듭니다.
  2. 앨범을 공유됨으로 설정합니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.

필수 인증 범위

콘텐츠를 공유하려면 앱에서 photoslibrary.sharing 승인 범위가 아닙니다.

앨범 공유

앨범을 공유하기 전에 다음 사항을 고려하세요.

  • 앱은 자신이 만든 앨범만 공유할 수 있습니다. 다른 앱에서 만든 앨범 내 앱에서 공유할 수 없습니다.
  • 앱이 Library API를 통해 앨범을 공유하면 공유 가능한 URL 누구나 앨범에 액세스하는 데 사용할 수 있습니다.
  • API를 통해 공유한 앨범의 경우 앨범 소유자가 링크 공유 사용 중지 Google 포토 앱에서 앨범 공유를 취소할 수 있습니다. 앱에 신규 사용자를 참여시키지 못하게 됩니다.

앨범을 공유하려면 다음 단계를 따르세요.

  1. UX 가이드라인 사용자로부터 공유 앨범 생성에 대한 명시적 동의를 얻어야 합니다.
  2. 앨범 만들기 albumId를 기록합니다. 이미 앨범을 만든 경우 다음을 기준으로 albumId 검색 사용자의 앨범 나열.
  3. 다음을 사용하여 albums.share를 호출합니다. 관련 albumId 및 원하는 옵션을 공유하고 설정합니다.
  4. 기록: shareToken 드림 값이 됩니다. 공유 토큰은 공유 앨범의 식별자입니다. 다른 사용자 계정에서 사용할 수 있습니다.
  5. 이제 다른 사용자가 여러분의 앱에 인증할 수 있습니다. 가입, 탈퇴 또는 세부정보 검색 공유 앨범의 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 포토 앨범 링크 링크가 있는 모든 사용자가 앨범의 콘텐츠를 볼 수 없으므로 신중하게 처리해야 합니다.

shareableUrl 필드는 앨범이 있음 링크 공유 사용 설정됩니다. 사용자가 이미 앨범에 참가한 경우 링크 공유가 아닌 경우 앨범의 productUrl을(를) 사용하여 대신 액세스하세요.

소유자가 링크를 사용 중지하면 shareableUrl가 무효화됩니다. 앨범이 공유되지 않은 경우).

shareToken

Kubernetes에서 가입, Leave, 또는 검색 공유 앨범의 세부정보를 있습니다.

소유자가 링크를 사용 중지하면 shareToken가 무효화됩니다. 앨범이 공유되지 않은 경우).

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입니다.
  • 공유 토큰이 유효합니다.
  • 앨범 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를 반환합니다. 사용자를 대신하여 앱에 참여했습니다.

자바

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 참입니다.
  • 앱에 연결된 사용자가 앨범의 소유자가 아닙니다. 즉, 앨범 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 오류 상태 코드가 표시됩니다.

자바

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"
  }
}