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