Comme décrit dans Déclarer des actions, lorsqu'un utilisateur interagit avec une action dans l'application, 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, Google envoie une requête HTTP à votre service, enregistrant ainsi 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 à l'adresse https://your-domain.com/approve?expenseId=abc123 doit faire pour gérer correctement l'action. et que vous voulez :
- Vérifier la requête
- Traiter la charge utile
- Renvoyer un code de réponse
Étape 1 : Vérifier la requête
Nous vous recommandons que le service à l'adresse https://your-domain.com/approve?expenseId=abc123 vérifie les éléments suivants :
- Jetons d'accès à usage limité : protègent contre les attaques par relecture.
- User-agent : s'assure que la requête provient de Google.
- Jetons porteurs : s'assure que la requête de Google est destinée au service.
Le 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 réussies, le service peut passer à l'étape suivante.
Étape 2 : Traiter l'action
Le service doit traiter l'action comme spécifié dans les paramètres d'URL, ainsi que les informations supplémentaires collectées auprès de l'utilisateur.
Les informations supplémentaires de l'utilisateur se trouvent dans le corps de la requête et sont encodées
à l'aide du
x-www-form-urlencoded. 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 : Renvoyer un code de réponse
Une fois que le service a traité et enregistré l'action, renvoyez le code de réponse 200 (OK). Vous pouvez utiliser les codes de réponse suivants en cas d'erreur :
| Code de réponse | Traitement |
|---|---|
| 400 (Requête incorrecte) | Google marque l'action comme ayant échoué. |
| 401 (Opération non autorisée) | Google marque l'action comme ayant échoué. |
| 404 (Fichier introuvable) | Google marque l'action comme ayant échoué. |
| 408 (Délai de la requête expiré) | Google réessaie ultérieurement. |
En cas d'échec permanent, Google informe l'utilisateur que l'action a échoué et qu'il doit suivre d'autres instructions dans l'e-mail.