Seperti yang dijelaskan dalam Mendeklarasikan tindakan, saat pengguna berinteraksi dengan tindakan dalam aplikasi, Google akan mengirimkan permintaan HTTP ke URL yang dideklarasikan dalam tindakan tersebut.
Contoh berikut menambahkan tombol ConfirmAction ke email tentang laporan pengeluaran:
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>
Microdata
<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>
Saat pengguna mengklik tombol, Google akan mengirimkan permintaan HTTP ke layanan Anda, yang mencatat konfirmasi. Layanan Anda menerima permintaan HTTP berikut dari 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
Bagian lain dari halaman ini menjelaskan hal yang perlu dilakukan oleh layanan di https://your-domain.com/approve?expenseId=abc123 untuk menangani tindakan dengan benar. Hal ini mencakup:
- Memverifikasi permintaan
- Memproses payload
- Menampilkan kode respons
Langkah 1: Verifikasi permintaan
Sebaiknya layanan di https://your-domain.com/approve?expenseId=abc123 memverifikasi hal berikut:
- Token akses penggunaan terbatas: Melindungi dari serangan replay
- Agen pengguna: Memastikan bahwa permintaan berasal dari Google.
- Token pembawa: Memastikan bahwa permintaan dari Google ditujukan untuk layanan tersebut.
Agen Pengguna untuk semua permintaan tindakan adalah Mozilla/5.0 (X11; Linux x86_64)
AppleWebKit/1.0 (KHTML, like Gecko; Gmail Actions).
Jika semua pemeriksaan lulus, layanan dapat melanjutkan ke langkah berikutnya.
Langkah 2: Proses tindakan
Layanan harus memproses tindakan seperti yang ditentukan dalam parameter URL serta informasi tambahan yang dikumpulkan dari pengguna.
Informasi tambahan dari pengguna berada di isi permintaan dan dienkode
menggunakan
x-www-form-urlencoded. Informasi ditetapkan dalam properti yang namanya sesuai dengan properti tindakan. Misalnya,
ConfirmAction memiliki
properti confirmed.
Langkah 3: Menampilkan kode respons
Setelah layanan berhasil memproses dan mencatat tindakan, tampilkan kode respons 200 (OK). Anda dapat menggunakan kode respons berikut dalam situasi error:
| Kode Respons | Perlakuan |
|---|---|
| 400 (Permintaan Buruk) | Google menandai tindakan sebagai gagal. |
| 401 (Tidak Sah) | Google menandai tindakan sebagai gagal. |
| 404 (Tidak Ditemukan) | Google menandai tindakan sebagai gagal. |
| 408 (Batas Waktu Permintaan) | Google akan mencoba lagi nanti. |
Untuk kegagalan permanen, Google akan memberi tahu pengguna bahwa tindakan gagal dan mereka harus mengikuti petunjuk alternatif di dalam email.