As sessões são o núcleo da API Picker, oferecendo uma maneira segura e controlada para os usuários selecionarem fotos e vídeos da biblioteca do Google Fotos. Este guia descreve como criar, gerenciar e consultar sessões de forma eficaz para permitir a seleção de fotos perfeita no seu app.
Antes de começar
- Configure seu app:ative a API e configure a autenticação. Consulte Configurar seu app para conferir as etapas detalhadas.
- Entenda o fluxo:revise como começar a usar a API Picker para ter uma visão geral de todo o processo de seleção de fotos.
- Revisar os escopos de autorização necessários: trabalhar com sessões requer o escopo
photospicker.mediaitems.readonly
. Para mais informações sobre escopos, consulte Escapos de autorização.
Ciclo de vida da sessão
A API Picker fornece métodos para criar, recuperar informações sobre e excluir sessões. Depois de autenticar os usuários, você pode usar sessões para gerenciar o ciclo de vida da seleção de fotos.
- Crie uma sessão para permitir que um usuário selecione itens de mídia.
- Solicitar a sessão para verificar quando o usuário terminou de selecionar itens de mídia.
- Listar e recuperar os itens de mídia.
- Limpe a sessão excluindo-a.
Criar sessões
Crie uma sessão para que os usuários possam escolher fotos com segurança diretamente do app Google Fotos e compartilhar com seu aplicativo.
sessions.create
gera uma nova sessão, retornando um pickerUri
exclusivo que
pode ser apresentado aos usuários. A sessão permanece ativa até que o usuário
selecione os itens de mídia ou até que a sessão expire.
Limites de sessão
Esteja ciente dos limites de sessão. A API Picker aplica limites ao número de sessões que você pode criar para garantir o uso responsável e evitar abusos. Em circunstâncias normais, é improvável que você atinja esses limites. No entanto, é necessário rastrear e limpar as sessões de forma proativa para evitar problemas.
Fazer pesquisas e monitorar sessões
Depois que uma sessão é criada, consulte periodicamente o endpoint sessions.get
para conferir
o status dela. A propriedade mediaItemsSet
na resposta retorna
true
quando o usuário conclui a seleção.
Use uma pesquisa eficiente. A resposta sessions.get
inclui o
objeto pollingConfig
. Use os campos abaixo para evitar chamadas desnecessárias
e criar uma experiência do usuário tranquila:
pollInterval
: intervalos de pesquisa ideaistimeoutIn
: duração do tempo limite
Consulte o exemplo de fluxo de pesquisa para mais detalhes.
Excluir e limpar sessões
sessions.delete
remove uma sessão, normalmente usada para limpeza depois que o usuário
termina de selecionar mídia ou se a sessão expirar.
É recomendável excluir sessões depois que o usuário selecionar itens de mídia e o app recuperar os bytes do item de mídia.
Exemplo de fluxo de pesquisa
Este é um exemplo de como criar e consultar uma sessão. Depois de autenticar o usuário pela primeira vez, crie uma nova sessão.
- Criar uma sessão:chame
sessions.create
para iniciar uma nova sessão e receber opickerUri
. - Apresente o
pickerUri
ao usuário:mostre o URL ou gere um código QR para o usuário ler. Leia uma visão geral da experiência de escolha do usuário. - Solicitar a sessão:
- Use o pollInterval recomendado de
pollingConfig
. - Verifique se
mediaItemsSet
é verdadeiro.- Se
true
, liste os itens de mídia selecionados. - Se
false
, continue a sondagem até quetimeoutIn
seja alcançado.
- Se
- Processe os tempos limite e cancelamentos sem problemas.
- Use o pollInterval recomendado de
GET https://photoslibrary.googleapis.com/v1/sessions/{sessionId}
Veja um exemplo de resposta:
{
"id": string,
"pickerUri": string,
"pollingConfig": {
object (PollingConfig)
},
"mediaItemsSet": boolean
}
Apresente o pickerUri
ao usuário e comece a consultar a sessão.
Verifique a resposta para o seguinte:
mediaItemsSet
: verdadeiro se o usuário terminou de selecionar itens de mídiapollingConfig.pollInterval
: tempo recomendado para aguardar antes da próxima pesquisapollingConfig.timeoutIn
: tempo total de espera antes do tempo limite
Se mediaItemsSet
for falso e timeoutIn
não tiver sido alcançado, aguarde
pollInterval
e tente novamente.
Se mediaItemsSet
for verdadeiro, liste os itens de mídia selecionados.
Se timeoutIn
for alcançado, processe o tempo limite de maneira adequada.