ตามที่อธิบายไว้ในการประกาศการดำเนินการ เมื่อผู้ใช้โต้ตอบกับการกระทำในแอป 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>
เมื่อผู้ใช้คลิกปุ่มดังกล่าว Google จะส่งคำขอ HTTP ไปยังบริการของคุณ ซึ่งจะบันทึกการยืนยัน บริการของคุณได้รับคำขอ 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
- โทเค็นสำหรับผู้ถือ - เพื่อรับประกันว่าคำขอที่มาจาก 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 จะแจ้งผู้ใช้ว่าการดำเนินการไม่สำเร็จและผู้ใช้ควรทำตามวิธีการอื่นๆ ในอีเมล