ผู้ใช้สามารถแชร์อัลบั้มที่สร้างโดยแอปของคุณ พร้อมตัวเลือกในการอนุญาตให้ผู้ใช้แสดงความคิดเห็นหรือร่วมส่งรายการสื่อของตนเองลงในอัลบั้ม
หากต้องการแชร์อัลบั้มผ่าน Google Photos Library API แอปของคุณต้องดำเนินการดังนี้
- สร้างอัลบั้มในนามของผู้ใช้
- ตั้งค่าให้แชร์อัลบั้มนั้น
ขอบเขตการตรวจสอบสิทธิ์ที่จำเป็น
หากต้องการแชร์เนื้อหา แอปของคุณต้องขอphotoslibrary.sharing
ขอบเขตการให้สิทธิ์
การแชร์อัลบั้ม
ก่อนที่จะแชร์อัลบั้ม โปรดพิจารณาสิ่งต่อไปนี้
- แอปของคุณแชร์ได้เฉพาะอัลบั้มที่แอปสร้างขึ้นเท่านั้น อัลบั้มที่สร้างโดยแอปอื่นๆ รวมถึง Google รูปภาพ จะไม่สามารถแชร์โดยแอปของคุณ
- เมื่อแอปแชร์อัลบั้มผ่าน 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
พร็อพเพอร์ตี้นี้จะส่งคืนเมื่อแชร์ รายการ หรือretrievingอัลบั้ม
ตารางต่อไปนี้แสดงพร็อพเพอร์ตี้ shareInfo
พร็อพเพอร์ตี้ | |
---|---|
sharedAlbumOptions |
ตัวเลือกที่อธิบายว่าผู้ใช้จะเพิ่มรายการสื่อในหรือแสดงความคิดเห็นในอัลบั้มที่แชร์ได้หรือไม่ |
shareableUrl |
ลิงก์ไปยังอัลบั้ม Google Photos ที่แชร์ ทุกคนที่มีลิงก์จะดูเนื้อหาของอัลบั้มได้ คุณควรดำเนินการด้วยความระมัดระวัง ระบบจะแสดงช่อง
|
shareToken |
โทเค็นที่จะใช้เพื่อjoin ออก หรือเรียกรายละเอียดของอัลบั้มที่แชร์ในนามของผู้ใช้ที่ไม่ใช่เจ้าของ
|
isJoinable |
True หากผู้ใช้สามารถเข้าร่วมอัลบั้มได้ |
isJoined |
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 }
เรียกดูอัลบั้มที่แชร์และแชร์โทเค็น
รายละเอียดของอัลบั้มที่แชร์ รวมถึงโทเค็นการแชร์จะแสดงขึ้นเมื่อแอปแชร์อัลบั้ม นอกจากนี้ คุณยังเรียกข้อมูลรายละเอียดเหล่านั้นได้ในภายหลังด้วยวิธีต่อไปนี้
หากผู้ใช้ที่เชื่อมต่อกับแอปของคุณอยู่ในปัจจุบันหรือเข้าร่วมอัลบั้มดังกล่าว ให้ทำดังนี้
- กับ
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" } }