book_path: /distribute/other-docs/_book.yaml project_path: /distribute/other-docs/_project.yaml
Engage SDK มี REST API เพื่อมอบประสบการณ์การรับชมต่อที่สอดคล้องกันในแพลตฟอร์มที่ไม่ใช่ Android เช่น iOS และ Roku TV API นี้ช่วยให้นักพัฒนาอัปเดตสถานะ "รับชมต่อ" สำหรับผู้ใช้ที่เลือกใช้จากแพลตฟอร์มที่ไม่ใช่ Android ได้
สิ่งที่ต้องมีก่อน
- คุณต้องผสานรวมแบบอิงตาม Engage SDK ในอุปกรณ์ให้เสร็จก่อน ขั้นตอนนี้มีความสำคัญอย่างยิ่งในการสร้างความเชื่อมโยงที่จำเป็น
ระหว่างรหัสผู้ใช้ของ Google กับ
AccountProfileของแอป - การเข้าถึงและการตรวจสอบสิทธิ์ API: หากต้องการดูและเปิดใช้ API ในโปรเจ็กต์ Google Cloud คุณต้องผ่านกระบวนการรายการที่อนุญาต คำขอ API ทั้งหมด ต้องมีการตรวจสอบสิทธิ์
รับสิทธิ์เข้าถึง
หากต้องการมีสิทธิ์เข้าถึงเพื่อดูและเปิดใช้ API ใน Google Cloud Console คุณต้องลงทะเบียนบัญชี
- ควรมีรหัสลูกค้า Google Workspace หากไม่มี คุณอาจต้องตั้งค่า Google Workspace รวมถึงบัญชี Google ที่ต้องการใช้เพื่อเรียก API
- สร้างบัญชีด้วย Google Cloud Console โดยใช้อีเมลที่เชื่อมโยงกับ Google Workspace
- สร้างโปรเจ็กต์ใหม่
- สร้างบัญชีบริการสำหรับการตรวจสอบสิทธิ์ API เมื่อสร้างบัญชีบริการแล้ว คุณจะมี 2 รายการต่อไปนี้
- รหัสบัญชีบริการ
- ไฟล์ JSON ที่มีคีย์บัญชีบริการ โปรดเก็บไฟล์นี้ไว้อย่างปลอดภัย คุณจะต้องใช้รหัสนี้เพื่อตรวจสอบสิทธิ์ไคลเอ็นต์กับ API ในภายหลัง
- ตอนนี้ Workspace และบัญชี Google ที่เชื่อมโยงจะใช้ REST API ได้แล้ว เมื่อการเปลี่ยนแปลงมีผลแล้ว คุณจะได้รับการแจ้งเตือนว่า API พร้อมให้บัญชีบริการเรียกใช้หรือไม่
- ทำตามขั้นตอนเหล่านี้เพื่อเตรียมพร้อมสำหรับการเรียก API ที่ได้รับมอบสิทธิ์
เผยแพร่คลัสเตอร์ความต่อเนื่อง
หากต้องการเผยแพร่ข้อมูลการค้นพบวิดีโอ ให้ส่งคำขอ POST ไปยัง
publishContinuationCluster API โดยใช้ไวยากรณ์ต่อไปนี้
https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/publishContinuationCluster
สถานที่:
package_name: ชื่อแพ็กเกจของผู้ให้บริการสื่อaccountId: รหัสที่ไม่ซ้ำกันสำหรับบัญชีของผู้ใช้ในระบบของคุณ โดยต้องตรงกับaccountIdที่ใช้บนเส้นทางในอุปกรณ์profileId: รหัสที่ไม่ซ้ำกันสำหรับโปรไฟล์ของผู้ใช้ภายในบัญชีในระบบของคุณ โดยต้องตรงกับ profileId ที่ใช้บนเส้นทางในอุปกรณ์
URL ของบัญชีที่ไม่มีโปรไฟล์คือ
https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/publishContinuationCluster
เพย์โหลดของคำขอจะแสดงในฟิลด์ entities โดย entities
จะแสดงรายการเอนทิตีเนื้อหาซึ่งอาจเป็น MovieEntity หรือ
TVEpisodeEntity อย่างใดอย่างหนึ่ง นี่คือช่องที่ต้องกรอก
เนื้อหาคำขอ
ฟิลด์ |
ประเภท |
ต้องระบุ |
คำอธิบาย |
entities |
รายการออบเจ็กต์ MediaEntity |
ใช่ |
รายการเอนทิตีเนื้อหาที่มีได้สูงสุด 5 รายการ ระบบจะเก็บเฉพาะ 5 รายการแรกและทิ้งรายการที่เหลือ อนุญาตให้ใช้รายการว่างเพื่อระบุว่าผู้ใช้ดูเอนทิตีทั้งหมดเสร็จแล้ว |
ฟิลด์ entities มี movieEntity และ tvEpisodeEntity แยกออกจากกัน
ฟิลด์ |
ประเภท |
ต้องระบุ |
คำอธิบาย |
movieEntity |
MovieEntity |
ใช่ |
ออบเจ็กต์ที่แสดงภาพยนตร์ภายใน ContinuationCluster |
tvEpisodeEntity |
TvEpisodeEntity |
ใช่ |
ออบเจ็กต์ที่แสดงตอนของทีวีภายใน ContinuationCluster |
ออบเจ็กต์แต่ละรายการในอาร์เรย์เอนทิตีต้องเป็นประเภท MediaEntity ที่ใช้ได้ประเภทใดประเภทหนึ่ง ได้แก่ MovieEntity หรือ TvEpisodeEntity พร้อมด้วยฟิลด์ทั่วไปและฟิลด์เฉพาะประเภท
ข้อมูลโค้ดต่อไปนี้แสดงเพย์โหลดของเนื้อหาคำขอสำหรับ publishContinuationCluster API
{
"entities": [
{
"movieEntity": {
"watch_next_type": "WATCH_NEXT_TYPE_CONTINUE",
"name": "Movie1",
"platform_specific_playback_uris": [
"https://www.example.com/entity_uri_for_android",
"https://www.example.com/entity_uri_for_iOS"
],
"poster_images": [
"http://www.example.com/movie1_img1.png",
"http://www.example.com/movie1_imag2.png"
],
"last_engagement_time_millis": 864600000,
"duration_millis": 5400000,
"last_play_back_position_time_millis": 3241111
}
},
{
"tvEpisodeEntity": {
"watch_next_type": "WATCH_NEXT_TYPE_CONTINUE",
"name": "TV SERIES EPISODE 1",
"platform_specific_playback_uris": [
"https://www.example.com/entity_uri_for_android",
"https://www.example.com/entity_uri_for_iOS"
],
"poster_images": [
"http://www.example.com/episode1_img1.png",
"http://www.example.com/episode1_imag2.png"
],
"last_engagement_time_millis": 864600000,
"duration_millis": 1800000,
"last_play_back_position_time_millis": 2141231,
"episode_display_number": "1",
"season_number": "1",
"show_title": "title"
}
}
]
}
ลบข้อมูลการค้นพบวิดีโอ
ใช้ clearClusters API เพื่อนำข้อมูลการค้นพบวิดีโอออก
หากต้องการลบข้อมูลคลัสเตอร์ความต่อเนื่อง ให้ส่งคำขอ POST ไปยัง
clearClusters API โดยใช้ไวยากรณ์ต่อไปนี้
https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/clearClusters
สถานที่:
package_name: ชื่อแพ็กเกจของผู้ให้บริการสื่อaccountId: รหัสที่ไม่ซ้ำกันสำหรับบัญชีของผู้ใช้ในระบบของคุณ โดยต้องตรงกับaccountIdที่ใช้บนเส้นทางในอุปกรณ์profileId: รหัสที่ไม่ซ้ำกันสำหรับโปรไฟล์ของผู้ใช้ภายในบัญชีในระบบของคุณ โดยต้องตรงกับ profileId ที่ใช้บนเส้นทางในอุปกรณ์
เพย์โหลดสำหรับ clearClusters API มีฟิลด์เดียวเท่านั้นคือ reason ซึ่งมี DeleteReason ที่ระบุเหตุผลในการนำข้อมูลออก
{
"reason": "DELETE_REASON_LOSS_OF_CONSENT"
}
การทดสอบ
หลังจากโพสต์ข้อมูลเรียบร้อยแล้ว ให้ใช้บัญชีทดสอบผู้ใช้เพื่อยืนยันว่าเนื้อหาที่คาดไว้ปรากฏในแถว "รับชมต่อ" ในแพลตฟอร์ม Google เป้าหมาย เช่น Google TV และแอป Google TV บนมือถือ Android และ iOS
ในการทดสอบ ให้รอการเผยแพร่ที่อาจล่าช้าอย่างสมเหตุสมผลเป็นเวลา 2-3 นาที และปฏิบัติตามข้อกำหนดในการดู เช่น ดูภาพยนตร์บางส่วนหรือดูตอนจนจบตอน ดูรายละเอียดได้ในหลักเกณฑ์ฟีดวิดีโอถัดไปสำหรับนักพัฒนาแอป