借助 Ambient API,您的应用可以将氛围模式设备连接到用户的 Google 相册账号,并显示用户选择的照片。
Ambient API 流程
以下详细介绍了 Ambient API 如何连接设备,然后检索和显示媒体内容:
检查是否存在现有设备(推荐):在创建新设备之前,建议先检查当前用户是否已有设备。对于内部用户通过您的应用创建的任何设备,您的应用应在内部用户与 Google 提供的
deviceId之间保持映射。如果为用户找到deviceId,您可以继续刷新其授权令牌(如果需要)。发起 OAuth 2.0 授权(并可选创建设备):通过请求授权代码,开始适用于电视和输入受限的设备的 OAuth 2.0 流程。
创建新设备:您的应用通过调用
CreateDevice并提供有效的 v4 UUID 在用户的 Google 相册账号中创建设备。设备成功创建后,该 API 将返回一个包含 Google 分配的
deviceId的AmbientDevice对象。您的应用必须存储此deviceId并将其与用户相关联,这一点至关重要。显示
settingsUri:AmbientDevice对象包含settingsUri。向用户显示此 URI(通常以二维码的形式),以便用户使用移动设备进行扫描。此 URI 会将用户定向至 Google 相册应用,在该应用中,用户可以配置要在氛围模式设备上显示的媒体来源(例如影集)。轮询
mediaSourcesSet:您的应用应定期调用GetDevice方法,提供deviceId,以检查环境设备的状态。监控AmbientDevice响应中的mediaSourcesSet字段。它最初的值为 false。当用户在 Google 相册应用中成功选择媒体来源后,此字段将更改为 true。
AmbientDevice响应包含一个包含pollInterval的pollingConfig,您应将其用作轮询频率的准则。检索媒体内容:当
mediaSourcesSet返回 true 时,您的应用可以开始提取用户选择的媒体内容。调用
ListMediaItems方法,提供deviceId。该 API 将返回一个包含AmbientMediaItem对象列表的ListMediaItemsResponse。每个AmbientMediaItem都包含id、createTime和MediaFile对象等详细信息,以及其他元数据。MediaFile包含一个baseUrl,您可以使用该baseUrl提取媒体内容的实际字节。如需详细了解其他baseUrl参数,请参阅列出和检索媒体内容指南。显示媒体内容:使用
MediaFile中的baseUrl在氛围设备上下载和显示媒体内容。
重要注意事项
设备数量限制和管理:
- 设备数量限制:请注意,每个应用用户的设备数量上限为 100 部。
- 设备活动和令牌:您需要管理设备和用户授权令牌的生命周期。考虑设备保持活跃状态的时长,以及在设备变为非活跃状态或令牌过期时如何处理令牌刷新或重新授权。
如需了解详情,请参阅创建和管理设备指南。
处理媒体内容:
- 媒体内容使用:了解如何使用
baseUrl正确提取和处理媒体内容,包括任何必要的身份验证或参数。 - 错误处理:为 API 调用实现强大的错误处理,包括设备出现
NOT_FOUND的情况、未设置媒体源时出现FAILED_PRECONDITION的情况,以及达到设备限制时出现RESOURCE_EXHAUSTED的情况。
如需了解详情,请参阅列出和检索媒体内容指南。
后续步骤
- 配置应用:确认您拥有必要的凭据,并且已将应用配置为适用于适用于电视和输入受限的设备的 OAuth 2.0。
- 查看 Ambient API 参考文档:探索详细参考文档,了解所有可用方法、请求和响应参数以及错误代码。