อัลบั้มที่แอปของคุณสร้างขึ้นสามารถแชร์กับผู้ใช้ต่างๆ ได้ โดยมีตัวเลือกให้อนุญาต ให้ผู้ใช้เหล่านั้นแสดงความคิดเห็น หรือร่วมแสดงรายการสื่อของตนเองในอัลบั้ม
หากต้องการแชร์อัลบั้มผ่าน API คลังภาพของ Google Photos แอปของคุณต้องดำเนินการต่อไปนี้
- สร้างอัลบั้มในนามของผู้ใช้
- ตั้งค่าอัลบั้มที่แชร์
ขอบเขตการตรวจสอบสิทธิ์ที่จำเป็น
แอปต้องขอ photoslibrary.sharing
เพื่อแชร์เนื้อหา
ขอบเขตการให้สิทธิ์
การแชร์อัลบั้ม
ก่อนที่จะแชร์อัลบั้ม ควรพิจารณาสิ่งต่อไปนี้
- แอปของคุณจะแชร์ได้เฉพาะอัลบั้มที่สร้างไว้เท่านั้น อัลบั้มที่สร้างโดยแอปอื่นๆ, รวมถึง Google Photos ไม่สามารถแชร์ในแอปได้
- เมื่อแอปแชร์อัลบั้มผ่าน Library API URL ที่แชร์ได้ สร้างขึ้นที่ทุกคนสามารถใช้เพื่อเข้าถึงอัลบั้ม
- สำหรับอัลบั้มที่แชร์ผ่าน API เจ้าของอัลบั้มจะทำสิ่งต่อไปนี้ได้ ปิดการแชร์ลิงก์ หรือเลิกแชร์อัลบั้มในแอป Google Photos ซึ่งอาจทำให้คุณ ไม่ให้แอปเข้าร่วมกับผู้ใช้ใหม่
วิธีแชร์อัลบั้ม
- ทำตาม หลักเกณฑ์ UX และ ได้รับความยินยอมอย่างชัดแจ้งจากผู้ใช้เพื่อสร้างอัลบั้มที่แชร์
- สร้างอัลบั้ม
และบันทึก
albumId
หากสร้างอัลบั้มไว้แล้ว คุณจะทำสิ่งต่อไปนี้ได้ เรียกดูalbumId
ภายในวันที่ แสดงอัลบั้มของผู้ใช้ - โทรหา
albums.share
โดยใช้albumId
ที่เกี่ยวข้อง รวมถึง ตัวเลือกการแบ่งปัน ที่คุณต้องการ ตั้งค่า - บันทึก
shareToken
ในการตอบกลับ โทเค็นการแชร์คือตัวระบุสำหรับอัลบั้มที่แชร์ ที่ใช้ได้ในบัญชีผู้ใช้ต่างๆ - ตอนนี้ผู้ใช้รายอื่นสามารถตรวจสอบสิทธิ์กับแอปของคุณได้แล้ว จากนั้น
join
ออก หรือ
ดึงรายละเอียด
ของอัลบั้มที่แชร์โดยใช้
shareToken
ตัวเลือกการแชร์
คุณสามารถตั้งค่าตัวเลือกต่อไปนี้เมื่อแชร์อัลบั้มโดยใช้
sharedAlbumOptions
พารามิเตอร์ หากไม่ได้ตั้งค่าตัวเลือกไว้อย่างชัดแจ้ง ระบบจะใช้ค่าเริ่มต้น
พร็อพเพอร์ตี้ | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|
isCollaborative |
false |
ตั้งค่าว่าผู้ใช้ Google Photos รายอื่นจะเพิ่มเนื้อหาลงใน อัลบั้มที่แชร์ |
isCommentable |
false |
ตั้งค่าว่าผู้ใช้ Google Photos สามารถแสดงความคิดเห็นใน อัลบั้มที่แชร์ |
ตัวอย่างคำขอ
คำขอต่อไปนี้แชร์อัลบั้มโดยโทรหา 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 Photos ที่แชร์ ทุกคนที่มีลิงก์สามารถ ดูเนื้อหาของอัลบั้ม จึงควรตรวจสอบด้วยความระมัดระวัง ฟิลด์
|
shareToken |
โทเค็นที่ใช้เพื่อ join ออก หรือดึงข้อมูล รายละเอียดของอัลบั้มที่แชร์ในนามของผู้ใช้ที่ไม่ใช่ผู้ใช้
|
isJoinable |
True หากผู้ใช้สามารถเข้าร่วมอัลบั้มได้ |
isJoined |
True หากผู้ใช้เข้าร่วมอัลบั้ม ตลอดเวลา
เป็นจริงแทนเจ้าของอัลบั้ม |
isOwned |
True หากผู้ใช้เป็นเจ้าของอัลบั้ม |
ยกเลิกการแชร์อัลบั้ม
หากต้องการเลิกแชร์อัลบั้มที่แอปแชร์ไว้ก่อนหน้านี้ ให้โทร
albums.unshare
โดยใช้
albumId
ของอัลบั้ม
นอกจากจะไม่มีการแชร์อัลบั้มแล้ว รายการต่อไปนี้จะ เกิดขึ้น:
- ผู้ที่ไม่ใช่เจ้าของทุกคนจะสูญเสียสิทธิ์เข้าถึงอัลบั้ม ซึ่งรวมถึงผู้ที่มี มีอัลบั้ม โดยเฉพาะ กับนักเรียนผ่านแอป Google Photos
- เนื้อหาทั้งหมดที่ผู้ที่ไม่ใช่เจ้าของเพิ่มจะถูกนำออกจากอัลบั้ม
- หากผู้ใช้เคยเพิ่มเนื้อหาจากอัลบั้มไว้ในคลังเพลงของตน เนื้อหาจะยังคงอยู่ในไลบรารี
- โทเค็นการแชร์และ 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 }
การเรียกข้อมูลอัลบั้มที่แชร์และแชร์โทเค็น
รายละเอียดของอัลบั้มที่แชร์ รวมถึงโทเค็นการแชร์ จะแสดงผลเมื่อแอปของคุณแชร์อัลบั้ม คุณสามารถ เรียกรายละเอียดเหล่านั้นในภายหลังได้ด้วยวิธีต่อไปนี้
หากผู้ใช้ที่เชื่อมต่อกับแอปของคุณอยู่เป็นเจ้าของหรือเข้าร่วมกับ อัลบั้ม:
- โดย
albums.get
จะใช้เมธอดalbumId
ที่เกี่ยวข้อง - ด้วย
albums.list
หากมี เป็นรายการสื่อในอัลบั้ม - ด้วย
sharedAlbums.list
ซึ่งจะแสดงอัลบั้มที่แชร์ทั้งหมดที่ผู้ใช้เข้าร่วมหรือเป็นเจ้าของ วิธีดึงข้อมูล เฉพาะอัลบั้มที่แอปของคุณสร้างขึ้น ให้ใช้excludeNonAppCreatedData
พารามิเตอร์ - ด้วย
sharedAlbums.get
โดยใช้โทเค็นการแชร์
หากผู้ใช้ที่เชื่อมต่อกับแอปของคุณไม่ได้เข้าร่วมอัลบั้ม ให้ทำดังนี้
เรียกดูรายละเอียดของอัลบั้มที่แชร์ด้วย
sharedAlbums.get
โดยใช้
โทเค็นการแชร์ที่ถูกต้อง
ตัวอย่างคำขอ
REST
นี่เป็นคำขอรับอัลบั้มจาก shareToken
:
GET https://photoslibrary.googleapis.com/v1/sharedAlbums/share-token
หากคำขอประสบความสำเร็จ ระบบจะแสดง
วันที่ 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
เป็นเท็จ - โทเค็นการแชร์ถูกต้อง
- ช่อง
isJoinable
ในshareInfo
ของอัลบั้มเป็นความจริง
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
ของอัลบั้มเป็นความจริง - ผู้ใช้ที่เชื่อมต่อกับแอปของคุณไม่ใช่เจ้าของอัลบั้ม กล่าวคือ
ฟิลด์
isOwned
ในshareInfo
ของอัลบั้มมีค่าเป็นเท็จ
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" } }