Comme décrit dans Déclarer des actions, lorsqu'un utilisateur interagit avec une action intégrée, Google envoie une requête HTTP à une URL déclarée dans l'action.
L'exemple suivant ajoute un bouton ConfirmAction
à un e-mail concernant une note de frais :
JSON-LD
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ConfirmAction",
"name": "Approve Expense",
"handler": {
"@type": "HttpActionHandler",
"url": "https://myexpenses.com/approve?expenseId=abc123"
}
},
"description": "Approval request for John's $10.13 expense for office supplies"
}
</script>
Microdonnées
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="potentialAction" itemscope itemtype="http://schema.org/ConfirmAction">
<meta itemprop="name" content="Approve Expense"/>
<div itemprop="handler" itemscope itemtype="http://schema.org/HttpActionHandler">
<link itemprop="url" href="https://myexpenses.com/approve?expenseId=abc123"/>
</div>
</div>
<meta itemprop="description" content="Approval request for John's $10.13 expense for office supplies"/>
</div>
Lorsque l'utilisateur clique sur le bouton, une requête HTTP est envoyée par Google à votre service pour enregistrer la confirmation. Votre service reçoit la requête HTTP suivante de Google :
POST /approve?expenseId=abc123 HTTP/1.1
Host: your-domain.com
Authorization: Bearer AbCdEf123456
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/1.0 (KHTML, like Gecko; Gmail Actions)
confirmed=Approved
Le reste de cette page décrit ce que le service https://your-domain.com/approve?expenseId=abc123
doit faire pour gérer correctement l'action. Par exemple :
- Vérification de la demande
- Traiter la charge utile
- Renvoyer un code de réponse
Étape 1 : Vérifiez la demande
Le service à https://your-domain.com/approve?expenseId=abc123
est invité à vérifier les points suivants :
- Jeton d'accès à usage limité : pour se protéger contre les attaques par rejeu.
- User-Agent : pour s'assurer que la demande provient de Google.
- Jeton du porteur : permet de garantir que la requête provenant de Google est bien destinée au service.
L'user-agent pour toutes les requêtes d'action est Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/1.0 (KHTML, like Gecko; Gmail Actions)
.
Si toutes les vérifications sont concluantes, le service peut passer à l'étape suivante.
Étape 2 : Traitez l'action
Le service doit traiter l'action comme spécifié dans les paramètres de l'URL, ainsi que les informations supplémentaires collectées auprès de l'utilisateur.
Les informations supplémentaires fournies par l'utilisateur se trouvent dans le corps de la requête et sont encodées à l'aide de l'encodage x-www-form-urlecoded. Les informations sont définies dans des propriétés dont les noms correspondent aux propriétés de l'action. Par exemple, ConfirmAction possède la propriété confirmed
.
Étape 3 : Renvoyez un code de réponse
Une fois que le service a traité et enregistré l'action, il doit renvoyer un code de réponse 200 (OK)
. Les codes de réponse suivants peuvent être utilisés en cas d'erreur :
Code de réponse | Traitement |
---|---|
400 (Requête incorrecte) | Google refusera l'action. |
401 (Opération non autorisée) | Google refusera l'action. |
404 (Fichier introuvable) | Google refusera l'action. |
408 (Délai avant expiration de la requête) | Google réessaiera plus tard. |
En cas d'échec permanent, Google indiquera à l'utilisateur que l'action a échoué et qu'il doit suivre d'autres instructions dans l'e-mail.