ผสานรวมฟีเจอร์ดูต่อโดยใช้ REST API

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 คุณต้องลงทะเบียนบัญชี

  1. ควรมีรหัสลูกค้า Google Workspace หากไม่มี คุณอาจต้องตั้งค่า Google Workspace รวมถึงบัญชี Google ที่ต้องการใช้เพื่อเรียก API
  2. สร้างบัญชีด้วย Google Cloud Console โดยใช้อีเมลที่เชื่อมโยงกับ Google Workspace
  3. สร้างโปรเจ็กต์ใหม่
  4. สร้างบัญชีบริการสำหรับการตรวจสอบสิทธิ์ API เมื่อสร้างบัญชีบริการแล้ว คุณจะมี 2 รายการต่อไปนี้
    • รหัสบัญชีบริการ
    • ไฟล์ JSON ที่มีคีย์บัญชีบริการ โปรดเก็บไฟล์นี้ไว้อย่างปลอดภัย คุณจะต้องใช้รหัสนี้เพื่อตรวจสอบสิทธิ์ไคลเอ็นต์กับ API ในภายหลัง
  5. ตอนนี้ Workspace และบัญชี Google ที่เชื่อมโยงจะใช้ REST API ได้แล้ว เมื่อการเปลี่ยนแปลงมีผลแล้ว คุณจะได้รับการแจ้งเตือนว่า API พร้อมให้บัญชีบริการเรียกใช้หรือไม่
  6. ทำตามขั้นตอนเหล่านี้เพื่อเตรียมพร้อมสำหรับการเรียก 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 นาที และปฏิบัติตามข้อกำหนดในการดู เช่น ดูภาพยนตร์บางส่วนหรือดูตอนจนจบตอน ดูรายละเอียดได้ในหลักเกณฑ์ฟีดวิดีโอถัดไปสำหรับนักพัฒนาแอป