book_path: /distribute/other-docs/_book.yaml project_path: /distribute/other-docs/_project.yaml
Engage SDK cung cấp một REST API để mang đến trải nghiệm xem tiếp nhất quán trên các nền tảng không phải Android, chẳng hạn như iOS và Roku TV. API này cho phép nhà phát triển cập nhật trạng thái "Xem tiếp" cho những người dùng đã chọn sử dụng tính năng này trên các nền tảng không phải Android.
Điều kiện tiên quyết
- Trước tiên, bạn phải hoàn tất quy trình tích hợp dựa trên Engage SDK trên thiết bị. Bước quan trọng này thiết lập mối liên kết cần thiết giữa mã nhận dạng người dùng của Google và
AccountProfilecủa ứng dụng. - Quyền truy cập và xác thực API: Để xem và bật API trong Dự án Google Cloud, bạn phải trải qua quy trình đưa vào danh sách cho phép. Tất cả các yêu cầu API đều yêu cầu xác thực.
Có quyền truy cập
Để có quyền truy cập vào API và bật API trong Google Cloud Console, bạn cần đăng ký tài khoản.
- Bạn phải có mã khách hàng Google Workspace. Nếu không có, bạn có thể cần thiết lập Google Workspace cũng như mọi Tài khoản Google mà bạn muốn dùng để gọi API.
- Thiết lập tài khoản bằng Google Cloud Console bằng email được liên kết với Google Workspace.
- Tạo một dự án mới.
- Tạo một tài khoản dịch vụ để xác thực API. Sau khi tạo tài khoản dịch vụ, bạn sẽ có 2 mục sau:
- Mã tài khoản dịch vụ.
- Một tệp JSON chứa khoá tài khoản dịch vụ của bạn. Hãy giữ an toàn cho tệp này. Bạn sẽ cần khoá này để xác thực ứng dụng với API sau này.
- Giờ đây, Workspace và các Tài khoản Google liên kết có thể sử dụng API REST. Sau khi thay đổi được truyền tải, bạn sẽ nhận được thông báo về việc API đã sẵn sàng để được tài khoản dịch vụ của bạn gọi hay chưa.
- Hãy làm theo các bước sau để chuẩn bị thực hiện một lệnh gọi API được uỷ quyền.
Xuất bản Cụm Tiếp tục
Để xuất bản dữ liệu khám phá video, hãy thực hiện một yêu cầu POST đến API publishContinuationCluster bằng cú pháp sau.
https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/publishContinuationCluster
Trong trường hợp:
package_name: Tên gói của nhà cung cấp nội dung nghe nhìnaccountId: Mã nhận dạng duy nhất cho tài khoản của người dùng trong hệ thống của bạn. Mã này phải khớp vớiaccountIdđược dùng trong đường dẫn trên thiết bị.profileId: Mã nhận dạng duy nhất cho hồ sơ người dùng trong tài khoản trong hệ thống của bạn. Mã này phải khớp với profileId được dùng trong đường dẫn trên thiết bị.
URL của tài khoản không có hồ sơ là:
https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/publishContinuationCluster
Tải trọng cho yêu cầu được biểu thị trong trường entities. entities biểu thị danh sách các thực thể nội dung, có thể là MovieEntity hoặc TVEpisodeEntity. Đây là trường bắt buộc.
Nội dung yêu cầu
Trường |
Loại |
Bắt buộc |
Nội dung mô tả |
thực thể |
Danh sách các đối tượng MediaEntity |
Có |
Danh sách các thực thể nội dung (tối đa 5 thực thể). Hệ thống chỉ giữ lại 5 bản sao lưu hàng đầu và loại bỏ những bản còn lại. Bạn có thể dùng một danh sách trống để cho biết người dùng đã xem xong tất cả các thực thể. |
Trường entities chứa movieEntity và tvEpisodeEntity riêng lẻ.
Trường |
Loại |
Bắt buộc |
Nội dung mô tả |
movieEntity |
MovieEntity |
Có |
Một đối tượng đại diện cho một bộ phim trong ContinuationCluster. |
tvEpisodeEntity |
TvEpisodeEntity |
Có |
Một đối tượng đại diện cho một tập chương trình truyền hình trong ContinuationCluster. |
Mỗi đối tượng trong mảng thực thể phải là một trong các loại MediaEntity có sẵn, cụ thể là MovieEntity và TvEpisodeEntity, cùng với các trường chung và dành riêng cho loại.
Đoạn mã sau đây minh hoạ tải trọng của phần nội dung yêu cầu cho API publishContinuationCluster.
{
"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"
}
}
]
}
Xoá dữ liệu khám phá video
Dùng API clearClusters để xoá dữ liệu khám phá video.
Để xoá dữ liệu cụm tiếp tục, hãy thực hiện yêu cầu POST đến API clearClusters bằng cú pháp sau.
https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/clearClusters
Trong trường hợp:
package_name: Tên gói của nhà cung cấp nội dung nghe nhìn.accountId: Mã nhận dạng duy nhất cho tài khoản của người dùng trong hệ thống của bạn. Mã này phải khớp vớiaccountIdđược dùng trong đường dẫn trên thiết bị.profileId: Mã nhận dạng duy nhất cho hồ sơ người dùng trong tài khoản trong hệ thống của bạn. Mã này phải khớp với profileId được dùng trong đường dẫn trên thiết bị.
Tải trọng cho API clearClusters chỉ chứa một trường là reason. Trường này chứa một DeleteReason chỉ định lý do xoá dữ liệu.
{
"reason": "DELETE_REASON_LOSS_OF_CONSENT"
}
Thử nghiệm
Sau khi đăng dữ liệu thành công, hãy dùng tài khoản kiểm thử người dùng để xác minh rằng nội dung dự kiến xuất hiện trong hàng "Xem tiếp" trên các nền tảng mục tiêu của Google, chẳng hạn như Google TV và ứng dụng di động Google TV trên Android và iOS.
Trong quá trình kiểm thử, hãy cho phép độ trễ truyền dữ liệu hợp lý trong vài phút và tuân thủ các yêu cầu về việc xem, chẳng hạn như xem một phần của phim hoặc xem hết một tập. Hãy tham khảo Nguyên tắc của kênh Xem video tiếp theo dành cho nhà phát triển ứng dụng để biết thông tin chi tiết.