Seperti yang dijelaskan dalam Mendeklarasikan Tindakan, saat pengguna berinteraksi dengan Action Dalam Aplikasi, Google mengirimkan permintaan HTTP ke URL yang dideklarasikan dalam tindakan.
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 tersebut, permintaan HTTP akan dikeluarkan dari Google ke layanan Anda, yang merekam 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 selanjutnya dari halaman ini menjelaskan apa yang perlu dilakukan 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
memeriksa:
- Token Akses Penggunaan Terbatas - Untuk melindungi dari serangan replay.
- Agen Pengguna - Untuk memastikan permintaan berasal dari Google.
- Token Pembawa - Untuk menjamin permintaan yang berasal dari Google ditujukan ke layanan.
Agen Pengguna untuk semua permintaan Action 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 Action
Layanan harus memproses tindakan seperti yang ditentukan dalam parameter URL serta informasi tambahan yang dikumpulkan dari pengguna.
Informasi tambahan dari pengguna berada dalam isi permintaan, dan dienkode menggunakan encoding x-www-form-urlecoded. Informasi ditetapkan dalam properti yang namanya sesuai dengan properti Action. Misalnya, ConfirmAction memiliki properti confirmed
.
Langkah 3: Kembalikan Kode Respons
Setelah layanan berhasil diproses dan mencatat tindakan, layanan akan menampilkan kode respons 200 (OK)
. Kode respons berikut dapat digunakan dalam situasi error:
Kode Respons | Perawatan |
---|---|
400 (Permintaan Buruk) | Google akan gagal melakukan tindakan ini. |
401 (Tidak sah) | Google akan gagal melakukan tindakan ini. |
404 (Tidak Ditemukan) | Google akan gagal melakukan tindakan ini. |
408 (Waktu Tunggu Permintaan Habis) | Google akan mencoba lagi nanti. |
Jika terjadi kegagalan permanen, Google akan memberi tahu pengguna bahwa tindakan telah gagal dan pengguna harus mengikuti petunjuk alternatif di dalam email.