As sessões são a base da API Picker e oferecem uma experiência segura e controlada para os usuários selecionarem fotos e álbuns da biblioteca do Google Fotos. Isso um guia que explica como criar, gerenciar e fazer enquetes com essas sessões seleção de fotos perfeita no seu aplicativo.
Antes de começar
- Configure seu app:ative a API e configure a autenticação. Consulte Configure seu app para etapas.
- Entenda o fluxo:revise o artigo Como começar a usar a API Picker. para ter uma visão geral de todo o processo de seleção de fotos.
- Analisar os escopos de autorização necessários: para trabalhar com sessões,
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 excluir sessões. Depois de autenticar seus usuários, você pode usar sessões para gerenciar o ciclo de vida de escolha de fotos.
- Crie uma sessão para permitir que um usuário selecione itens de mídia.
- Consulte a sessão para verificar quando o usuário concluir a seleção de 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 Google Fotos e compartilhe com o aplicativo.
sessions.create
gera uma nova sessão, retornando um pickerUri
exclusivo que
que você pode apresentar aos usuários. A sessão permanece ativa até que o usuário
selecionar itens de mídia ou a sessão atingirá o tempo limite.
Limites de sessão
Esteja ciente dos limites de sessão. A API Picker aplica limites no 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.
Enquete e monitore as sessões
Depois que uma sessão for criada, pesquise periodicamente o endpoint sessions.get
para
o status de uma sessão. A propriedade mediaItemsSet
na resposta retorna
true
quando o usuário conclui a seleção.
Use sondagem 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
Veja mais detalhes em Exemplo de fluxo de pesquisa.
Excluir e limpar sessões
sessions.delete
remove uma sessão, normalmente usada para limpeza após o usuário
terminar de selecionar a 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 sondagem
Este é um exemplo de como criar e consultar uma sessão. Após a primeira autenticação seu usuário, crie uma nova sessão.
- Crie uma sessão:chame
sessions.create
para iniciar uma sessão. acessar opickerUri
. - Apresente o
pickerUri
ao usuário:mostre o URL ou gere um QR code. para que o usuário possa ler. - 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 a sondagem até quetimeoutIn
seja alcançado.
- Se
- Gerencie corretamente os tempos limite e os cancelamentos.
- 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ídia.pollingConfig.pollInterval
: tempo de espera recomendado antes da próxima enquetepollingConfig.timeoutIn
: tempo total de espera antes de tempo limite
Se mediaItemsSet
for falso e timeoutIn
não tiver sido alcançado, aguarde
pollInterval
e faça uma nova enquete.
Se mediaItemsSet
for verdadeiro, liste os itens de mídia selecionados.
Se timeoutIn
for atingido, processe o tempo limite normalmente.