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 de leur bibliothèque Google Photos de manière sécurisée et contrôlée. Ce guide explique comment créer, gérer et interroger efficacement des sessions 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 en savoir plus, consultez la section Configurer votre application.
  • Comprendre le flux:consultez Premiers pas avec l'API Picker pour obtenir une présentation 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 d'autorisation.

Cycle de vie des sessions

L'API Picker fournit des méthodes permettant de créer, de récupérer des informations et de supprimer des sessions. Après avoir authentifié vos utilisateurs, vous pouvez utiliser des sessions pour gérer le cycle de vie du sélecteur 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. Listez et récupérez 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 à nouveau dans 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 session. L'API Picker impose des limites au nombre de sessions que vous pouvez créer pour garantir une utilisation responsable et éviter toute utilisation abusive. En temps normal, vous ne devriez pas atteindre 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 une 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 méthode d'interrogation efficace. La réponse sessions.get inclut l'objet pollingConfig. Utilisez les champs suivants pour éviter les appels inutiles et créer une expérience utilisateur fluide:

  • pollInterval: intervalles de sondage optimaux
  • timeoutIn: durée du délai avant expiration

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

Supprimer et nettoyer les sessions

sessions.delete supprime une session, généralement utilisée pour le nettoyage une fois que l'utilisateur a terminé 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 de l'élément multimédia.

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 démarrer une session et obtenir pickerUri.
  2. Présentez le pickerUri à l'utilisateur:affichez l'URL ou générez un code QR que l'utilisateur peut scanner. Consultez une présentation de l'expérience de sélection de l'utilisateur.
  3. Interroger la session:
    1. Utilisez le pollInterval recommandé de pollingConfig.
    2. Vérifiez si mediaItemsSet est "true".
      1. Si la valeur est true, procédez à la liste des éléments multimédias sélectionnés.
      2. Si la valeur est false, continuez l'interrogation jusqu'à ce que timeoutIn soit atteint.
    3. Gérez correctement les délais avant expiration et les annulations.
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 l'pickerUri à l'utilisateur, puis commencez à interroger la session.

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

  • mediaItemsSet : "true" si l'utilisateur a terminé de sélectionner des éléments multimédias
  • pollingConfig.pollInterval: temps recommandé à attendre avant le prochain sondage
  • pollingConfig.timeoutIn: durée totale d'attente avant l'expiration

Si mediaItemsSet est faux et que timeoutIn n'a pas été atteint, attendez pollInterval, puis relancez l'interrogation.

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

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