Criar e gerenciar sessões

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.

  1. Crie uma sessão para permitir que um usuário selecione itens de mídia.
  2. Consulte a sessão para verificar quando o usuário concluir a seleção de 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 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 ideais
  • timeoutIn: 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.

  1. Crie uma sessão:chame sessions.create para iniciar uma sessão. acessar o pickerUri.
  2. Apresente o pickerUri ao usuário:mostre o URL ou gere um QR code. para que o usuário possa ler.
  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 a sondagem até que timeoutIn seja alcançado.
    3. Gerencie corretamente os tempos limite e os cancelamentos.
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 enquete
  • pollingConfig.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.