会话是 Picker API 的核心,可让您以会话为中心, 让用户能够从 Google 相册媒体库中选择照片和影集。这个 本指南概述了如何创建、管理并有效地开展投票活动, 在应用中无缝选择照片。
前期准备
- 配置应用:启用 API 并设置身份验证。请参阅 配置您的应用 步骤。
- 了解流程:查看 Picker API 使用入门 了解整个照片选择过程的概述。
- 查看所需的授权范围:使用会话需要
photospicker.mediaitems.readonly
范围。如需详细了解范围 请参阅授权范围。
会话生命周期
Picker API 提供了创建、检索相关信息的方法, 删除会话。对用户进行身份验证后,您可以使用会话来管理 照片选择生命周期
创建会话
创建一个会话,以便用户可以直接从 Google 相册应用中安全地选择照片,并将其分享回您的应用。
sessions.create
生成一个新会话,并返回唯一 pickerUri
您可以向用户展示的内容会话将保持有效状态,直到
成功选择媒体项或会话超时。
会话次数限制
请注意会话限制。Picker API 对 您可以创建的会话,以确保负责任的使用并防止滥用行为。低于 在正常情况下,您不太可能达到这些上限。不过,您应该 并主动清理会话,以避免 问题。
投票和监控会话
创建会话后,定期轮询 sessions.get
端点以获取
会话的状态。当用户完成选择后,响应中的 mediaItemsSet
属性会返回 true
。
请务必使用高效的轮询。sessions.get
响应包含
pollingConfig
对象。使用以下字段有助于避免不必要的
来电,并打造顺畅的用户体验:
pollInterval
:最佳轮询间隔timeoutIn
:超时时长
如需了解详情,请参阅轮询流程示例。
删除和清理会话
sessions.delete
移除会话,通常用于在用户之后执行清理操作
或会话超时。
最佳做法是在用户选择媒体项后删除会话 且您的应用已检索到媒体项 字节。
轮询流程示例
这是一个创建和轮询会话的示例。首次进行身份验证后 创建一个新会话
- 创建会话:调用
sessions.create
以启动新会话并获取pickerUri
。 - 向用户显示
pickerUri
:显示网址或生成二维码 供用户扫描的二维码 - 轮询会话:
- 使用
pollingConfig
中建议的轮询间隔。 - 检查
mediaItemsSet
是否为 true。- 如果为
true
,则继续列出所选媒体内容。 - 如果为
false
,则继续轮询,直到达到timeoutIn
。
- 如果为
- 妥善处理超时和取消。
- 使用
GET https://photoslibrary.googleapis.com/v1/sessions/{sessionId}
以下是示例响应:
{
"id": string,
"pickerUri": string,
"pollingConfig": {
object (PollingConfig)
},
"mediaItemsSet": boolean
}
将 pickerUri
呈现给用户,然后开始轮询会话。
检查响应是否包含以下内容:
mediaItemsSet
:如果用户已完成媒体项选择,则为 truepollingConfig.pollInterval
:建议在下次轮询之前等待的时间pollingConfig.timeoutIn
:等待之前的总时间 超时
如果 mediaItemsSet
为 false 且尚未达到 timeoutIn
,请等待 pollInterval
,然后重新轮询。
如果 mediaItemsSet
为 true,请继续列出所选媒体项。
如果达到 timeoutIn
,请妥善处理超时。