As sessões são o núcleo da API Picker, oferecendo uma maneira segura e controlada de selecionar 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 seus 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
você pode apresentar aos usuários. A sessão permanece ativa até que o usuário
selecione 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 for criada, pesquise periodicamente o endpoint sessions.get
para saber o status de uma sessão. 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 a mídia ou se a sessão expira.
É 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, 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. - Faça enquetes sobre a sessão:
- Use o PollInterval recomendado de
pollingConfig
. - Verifique se
mediaItemsSet
é verdadeiro.- Se
true
, prossiga para a lista dos itens de mídia selecionados. - Se
false
, continue pesquisando atétimeoutIn
.
- 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 enquete.pollingConfig.timeoutIn
: tempo total de espera antes de atingir o 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.