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 vidéos dans leur bibliothèque Google Photos de manière sécurisée et contrôlée. Ce guide explique comment créer et gérer des sessions d'interrogation efficaces pour permettre une sélection de photos fluide dans votre application.

Avant de commencer

  • Configurez votre application : activez l'API et configurez l'authentification. Pour obtenir des instructions détaillées, consultez Configurer votre application.
  • Comprendre le flux : consultez Premiers pas avec l'API Picker pour obtenir une vue d'ensemble de l'ensemble du processus de sélection de photos.
  • Consultez les champs d'application d'autorisation requis : pour utiliser les sessions, vous devez disposer du champ d'application photospicker.mediaitems.readonly. Pour en savoir plus sur les niveaux d'accès, consultez Niveaux d'autorisation.

Cycle de vie des sessions

L'API Picker fournit des méthodes pour créer, récupérer des informations sur les sessions et les supprimer. Après avoir authentifié vos utilisateurs, vous pouvez utiliser des sessions pour gérer le 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 fini 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 de manière sécurisée directement depuis leur application Google Photos et les partager avec votre application.

sessions.create génère une nouvelle session et renvoie 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 jusqu'à ce qu'elle expire. Pour les applications Web, vous pouvez ajouter /autoclose à pickerUri pour fermer automatiquement la fenêtre ou l'onglet Google Photos une fois que l'utilisateur a terminé sa sélection. Pour en savoir plus, consultez Sélection de photos : ce que voient les utilisateurs.

Limite de sessions

Tenez compte des limites de session. L'API Picker impose des limites au nombre de sessions que vous pouvez créer pour garantir une utilisation responsable et éviter les abus. Dans des circonstances normales, il est peu probable que vous atteigniez ces limites. Toutefois, vous devez suivre et nettoyer les sessions de manière proactive pour éviter tout problème.

Interroger et surveiller les sessions

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

Veillez à utiliser une interrogation efficace. La réponse sessions.get inclut l'objet pollingConfig. Utilisez les champs suivants pour éviter les appels inutiles et offrir une expérience utilisateur fluide :

  • pollInterval : intervalles d'interrogation optimaux
  • timeoutIn : durée du délai d'inactivité

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

Supprimer et nettoyer des sessions

sessions.delete supprime une session, généralement utilisée pour le nettoyage une fois que l'utilisateur a fini de sélectionner des contenus multimédias ou si la session expire.

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

Exemple de flux d'interrogation

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

  1. Créer une session : appelez sessions.create pour lancer une nouvelle session et obtenir le pickerUri.
  2. Présentez le pickerUri à l'utilisateur : affichez l'URL ou générez un code QR que l'utilisateur pourra scanner. Découvrez l'expérience de sélection des utilisateurs.
  3. Sonder la session :
    1. Utilisez l'intervalle d'interrogation recommandé de pollingConfig.
    2. Vérifiez si mediaItemsSet est défini sur "true".
      1. Si la valeur est true, passez à la liste des éléments multimédias sélectionnés.
      2. Si la valeur est false, continuez à interroger jusqu'à ce que timeoutIn soit atteint.
    3. Gérez les délais d'attente et les annulations de manière fluide.
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 points suivants dans la réponse :

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

Si mediaItemsSet est défini sur "false" et que timeoutIn n'a pas été atteint, attendez pollInterval, puis interrogez à nouveau.

Si mediaItemsSet est défini sur "true", passez à la liste des éléments multimédias sélectionnés.

Si timeoutIn est atteint, gérez le délai d'expiration de manière appropriée.