Xử lý yêu cầu hành động

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 đã khai báo trong hành động đó.

Ví dụ sau đây thêm nút ConfirmAction vào một email liên quan đến 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 này, Google sẽ gửi một yêu cầu HTTP tới dịch vụ của bạn và ghi lại thông tin xác nhận đó. Dịch vụ của bạn sẽ 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 mà dịch vụ tại https://your-domain.com/approve?expenseId=abc123 cần làm để xử lý thao tác đúng cách. Vấn đề này bao gồm:

  • Xác minh yêu cầu
  • Xử lý tải trọng
  • Trả về mã phản hồi

Bước 1: Xác minh yêu cầu

Bạn nên kiểm tra dịch vụ tại https://your-domain.com/approve?expenseId=abc123:

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ý thao tác như được chỉ định trong các thông số URL cũng như thông tin bổ sung được thu thập từ người dùng.

Thông tin bổ sung từ người dùng nằm trong phần nội dung của yêu cầu và được mã hoá bằng phương thức mã hoá x-www-form-urlecoded. Thông tin được đặt trong các 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 xử lý và ghi lại thành công thao tác, dịch vụ sẽ trả về mã phản hồi 200 (OK). Bạn có thể sử dụng các mã phản hồi sau trong 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 hành động này.
401 (Không được phép) Google sẽ không thực hiện hành động này.
404 (Không tìm thấy) Google sẽ không thực hiện 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 không thành công vĩnh viễn, Google sẽ thông báo cho người dùng rằng hành động không thành công và người dùng nên làm theo hướng dẫn thay thế trong email.

Đọc thêm