Như mô tả trong phần Khai báo hành động, khi người dùng tương tác với một Hành động trong ứng dụng, Google sẽ gửi một yêu cầu HTTP đến một URL được khai báo trong hành động đó.
Ví dụ sau đây sẽ thêm nút ConfirmAction
vào một email về báo cáo chi phí:
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>
Vi dữ liệu
<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>
Khi người dùng nhấp vào nút, Google sẽ gửi một yêu cầu HTTP đến dịch vụ của bạn để ghi lại nội dung xác nhận. Dịch vụ của bạn nhận được yêu cầu HTTP sau đây từ 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
Phần còn lại của trang này mô tả những việc dịch vụ tại https://your-domain.com/approve?expenseId=abc123
cần làm để xử lý thao tác đúng cách. Nội dung như vậy bao gồm:
- Xác minh yêu cầu
- Đang xử lý tải trọng
- Trả về mã phản hồi
Bước 1: Xác minh yêu cầu
Dịch vụ tại https://your-domain.com/approve?expenseId=abc123
nên kiểm tra:
- Mã truy cập sử dụng hạn chế – Để ngăn chặn các cuộc tấn công phát lại.
- Tác nhân người dùng – Để đảm bảo yêu cầu đến từ Google.
- Mã thông báo mang – Để đảm bảo rằng yêu cầu đến từ Google là dành cho dịch vụ.
Tác nhân người dùng cho tất cả yêu cầu Hành động là Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/1.0 (KHTML, like Gecko; Gmail Actions)
.
Nếu tất cả các bước kiểm tra đều đạt, dịch vụ có thể chuyển sang bước tiếp theo.
Bước 2: Xử lý Hành động
Dịch vụ phải xử lý hành động được chỉ định trong các tham số URL cũng như thông tin bổ sung được thu thập từ người dùng.
Thông tin bổ sung của người dùng nằm trong nội dung yêu cầu và được mã hoá bằng bộ mã hoá x-www-form-urlecoded. Thông tin này được đặt trong những thuộc tính có tên tương ứng với các thuộc tính của Hành động. Ví dụ: ConfirmAction có thuộc tính confirmed
.
Bước 3: Trả lại mã phản hồi
Sau khi được xử lý và ghi lại hành động thành công, dịch vụ sẽ trả về một mã phản hồi 200 (OK)
. Bạn có thể sử dụng các mã phản hồi sau trong các trường hợp lỗi:
Mã phản hồi | Phương pháp điều trị |
---|---|
400 (Yêu cầu không hợp lệ) | Google sẽ không thực hiện được hành động này. |
401 (Trái phép) | Google sẽ không thực hiện được hành động này. |
404 (Không tìm thấy) | Google sẽ không thực hiện được hành động này. |
408 (Hết thời gian chờ yêu cầu) | Google sẽ thử lại sau. |
Trong trường hợp lỗi vĩnh viễn, Google sẽ thông báo cho người dùng rằng thao tác không thành công và người dùng nên làm theo hướng dẫn thay thế trong email.