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.
- Créez une session pour permettre à un utilisateur de sélectionner des éléments multimédias.
- Interrogez la session pour vérifier quand l'utilisateur a terminé de sélectionner des éléments multimédias.
- Lister et récupérer les éléments multimédias
- 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 optimauxtimeoutIn
: 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.
- Créer une session : appelez
sessions.create
pour démarrer une session et obtenirpickerUri
. - Présenter le
pickerUri
à l'utilisateur:affichez l'URL ou générez un code QR. que l'utilisateur peut scanner. - Interroger la session
- :
- Utilisez le pollInterval recommandé de
pollingConfig
. - Vérifiez si
mediaItemsSet
est vrai.- Si la valeur est
true
, affichez les éléments multimédias sélectionnés. - Si la valeur est
false
, poursuivez le sondage jusqu'à ce quetimeoutIn
soit atteint.
- Si la valeur est
- Gérez les délais avant expiration et les annulations comme il se doit.
- Utilisez le pollInterval recommandé de
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 sondagepollingConfig.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.