Criar e gerenciar sessões

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.

  1. Crie uma sessão para permitir que um usuário selecione itens de mídia.
  2. Solicitar a sessão para verificar quando o usuário terminou de selecionar itens de mídia.
  3. Listar e recuperar os itens de mídia.
  4. 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 ideais
  • timeoutIn: 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.

  1. Criar uma sessão:chame sessions.create para iniciar uma nova sessão e receber o pickerUri.
  2. 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.
  3. Faça enquetes sobre a sessão:
    1. Use o PollInterval recomendado de pollingConfig.
    2. Verifique se mediaItemsSet é verdadeiro.
      1. Se true, prossiga para a lista dos itens de mídia selecionados.
      2. Se false, continue pesquisando até timeoutIn.
    3. Processe os tempos limite e cancelamentos sem problemas.
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 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.