ตามที่อธิบายไว้ในการประกาศการดําเนินการ เมื่อผู้ใช้โต้ตอบกับการดําเนินการในแอป Google จะส่งคําขอ HTTP ไปยัง URL ที่ประกาศในการดําเนินการ
ตัวอย่างต่อไปนี้จะเพิ่มปุ่ม ConfirmAction
ลงในอีเมลเกี่ยวกับรายงานค่าใช้จ่าย
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>
เมื่อผู้ใช้คลิกปุ่ม ระบบจะส่งคําขอ HTTP จาก Google ไปยังบริการของคุณเพื่อบันทึกการยืนยัน บริการของคุณได้รับคําขอ HTTP ต่อไปนี้จาก 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
ส่วนที่เหลือของหน้านี้จะอธิบายสิ่งที่บริการที่ https://your-domain.com/approve?expenseId=abc123
ต้องทำเพื่อจัดการการดำเนินการอย่างเหมาะสม ซึ่งรวมถึงเนื้อหาต่อไปนี้
- การยืนยันคําขอ
- กำลังประมวลผลเพย์โหลด
- การแสดงโค้ดตอบกลับ
ขั้นตอนที่ 1: ยืนยันคําขอ
บริการที่ https://your-domain.com/approve?expenseId=abc123
ควรตรวจสอบสิ่งต่อไปนี้
- โทเค็นการเข้าถึงแบบจำกัดการใช้งาน - เพื่อป้องกันการป้องกันการโจมตีด้วยการเล่นซ้ำ
- User Agent - ตรวจสอบว่าคำขอมาจาก Google
- Bearer Token - เพื่อรับประกันว่าคําขอที่มาจาก Google มีไว้สําหรับบริการ
User Agent สําหรับคําขอดำเนินการทั้งหมดคือ Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/1.0 (KHTML, like Gecko; Gmail Actions)
หากการตรวจสอบทั้งหมดผ่าน บริการจะดำเนินการขั้นตอนถัดไปได้
ขั้นตอนที่ 2: ประมวลผลการดำเนินการ
บริการควรประมวลผลการดำเนินการตามที่ระบุไว้ในพารามิเตอร์ของ URL รวมถึงข้อมูลเพิ่มเติมที่รวบรวมจากผู้ใช้
ข้อมูลเพิ่มเติมจากผู้ใช้จะอยู่ในเนื้อหาของคําขอ และเข้ารหัสโดยใช้การเข้ารหัส x-www-form-urlecoded ระบบจะตั้งค่าข้อมูลในพร็อพเพอร์ตี้ที่มีชื่อสอดคล้องกับพร็อพเพอร์ตี้ของการดำเนินการ เช่น ConfirmAction มีพร็อพเพอร์ตี้ confirmed
ขั้นตอนที่ 3: ส่งรหัสตอบกลับ
เมื่อบริการประมวลผลและบันทึกการดำเนินการเรียบร้อยแล้ว ระบบจะแสดงโค้ดการตอบกลับ 200 (OK)
โค้ดตอบกลับต่อไปนี้สามารถใช้ในสถานการณ์ข้อผิดพลาด
โค้ดตอบกลับ | กลุ่มทดสอบ |
---|---|
400 (คำขอไม่ถูกต้อง) | Google จะดำเนินการไม่สำเร็จ |
401 (ไม่ได้รับอนุญาต) | Google จะดำเนินการไม่สำเร็จ |
404 (ไม่พบ) | Google จะดำเนินการไม่สำเร็จ |
408 (คำขอหมดเวลา) | Google จะลองอีกครั้งในภายหลัง |
ในกรณีที่ดำเนินการไม่สำเร็จอย่างถาวร Google จะแจ้งให้ผู้ใช้ทราบว่าการดำเนินการไม่สำเร็จ และผู้ใช้ควรทำตามวิธีการอื่นในอีเมล