Créer et gérer des sessions

Les sessions sont au cœur de l'API Picker. Elles permettent aux utilisateurs de sélectionner des photos et des albums de leur bibliothèque Google Photos de manière sécurisée et contrôlée. Ce ce guide explique comment créer et gérer des sessions de sondage de manière efficace de sélectionner facilement des photos dans votre application.

Avant de commencer

  • Configurer votre application:activez l'API et configurez l'authentification. Voir Configurez votre application pour obtenir étapes.
  • Comprendre le processus:consultez Premiers pas avec l'API Picker. pour obtenir un aperçu de l'ensemble du processus de sélection des photos.
  • Consulter les champs d'application d'autorisation requis : l'utilisation des sessions nécessite le champ d'application photospicker.mediaitems.readonly. Pour en savoir plus sur les champs d'application, consultez la section Champs d'application des autorisations.

Cycle de vie d'une session

L'API Picker fournit des méthodes pour créer, récupérer des informations sur et supprimer des sessions. Après avoir authentifié vos utilisateurs, vous pouvez utiliser des sessions pour gérer du cycle de vie de la sélection de photos.

  1. Créez une session pour permettre à un utilisateur de sélectionner des éléments multimédias.
  2. Interrogez la session pour vérifier quand l'utilisateur a terminé de sélectionner des éléments multimédias.
  3. Lister et récupérer les éléments multimédias
  4. Nettoyez la session en la supprimant.

Créer des sessions

Créez une session pour que vos utilisateurs puissent sélectionner des photos directement dans leur Google Photos, puis partagez-les avec votre application.

sessions.create génère une nouvelle session, renvoyant un pickerUri unique que vous pouvez présenter à vos utilisateurs. La session reste active jusqu'à ce que l'utilisateur ait sélectionné des éléments multimédias ou que la session expire.

Limite de sessions

Tenez compte des limites de sessions. L'API Picker applique des limites au nombre de que vous pouvez créer pour garantir une utilisation responsable et prévenir les abus. En temps normal, vous ne devriez pas atteindre ces limites. Cependant, vous devez suivre et nettoyer les sessions de manière proactive pour éviter les problèmes de sécurité.

Sondez et surveillez les sessions

Une fois la session créée, interrogez régulièrement le point de terminaison sessions.get pour obtenir le statut d'une session. La propriété mediaItemsSet de la réponse renvoie true lorsque l'utilisateur a terminé sa sélection.

Assurez-vous d'utiliser une interrogation efficace. La réponse sessions.get inclut les pollingConfig. Utilisez les champs suivants pour éviter les appels inutiles et créer une expérience utilisateur fluide :

  • pollInterval: intervalles d'interrogation optimaux
  • timeoutIn: délai avant expiration

Pour en savoir plus, consultez Exemple de flux d'interrogation.

Supprimer et nettoyer des sessions

sessions.delete supprime une session, généralement utilisée pour un nettoyage après que l'utilisateur a fini de sélectionner des contenus multimédias ou a dépassé le délai d'expiration de la session.

Il est recommandé de supprimer des sessions une fois que l'utilisateur a sélectionné des éléments multimédias et votre application a récupéré l'élément multimédia octets.

Exemple de flux d'interrogation

Voici un exemple de création et d'interrogation d'une session. Après la première authentification votre utilisateur, créez une session.

  1. Créer une session : appelez sessions.create pour démarrer une session et obtenir pickerUri.
  2. Présenter le pickerUri à l'utilisateur:affichez l'URL ou générez un code QR. que l'utilisateur peut scanner.
  3. Interroger la session
       :
    1. Utilisez le pollInterval recommandé de pollingConfig.
    2. Vérifiez si mediaItemsSet est vrai.
      1. Si la valeur est true, affichez les éléments multimédias sélectionnés.
      2. Si la valeur est false, poursuivez le sondage jusqu'à ce que timeoutIn soit atteint.
    3. Gérez les délais avant expiration et les annulations comme il se doit.
GET https://photoslibrary.googleapis.com/v1/sessions/{sessionId}

Voici un exemple de réponse :

{
  "id": string,
  "pickerUri": string,
  "pollingConfig": {
    object (PollingConfig)
  },
  "mediaItemsSet": boolean
}

Présentez pickerUri à l'utilisateur, puis commencez à interroger la session.

Vérifiez les éléments suivants dans la réponse :

  • mediaItemsSet : "true" si l'utilisateur a fini de sélectionner des éléments multimédias.
  • pollingConfig.pollInterval: temps d'attente recommandé avant le prochain sondage
  • pollingConfig.timeoutIn: temps d'attente total avant expiration du délai

Si mediaItemsSet est "false" et que la valeur timeoutIn n'a pas été atteinte, attendez pollInterval, puis relancez le sondage.

Si mediaItemsSet est défini sur "True", lister les éléments multimédias sélectionnés.

Si timeoutIn est atteint, gérez le délai d'inactivité comme il se doit.