همانطور که در «اعلام کنشها» توضیح داده شد، وقتی کاربر با یک اقدام درونبرنامه تعامل میکند، Google یک درخواست HTTP را به نشانی اینترنتی اعلامشده در کنش ارسال میکند.
مثال زیر یک دکمه 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>
میکروداده
<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
توصیه می شود بررسی کند:
- استفاده از رمز دسترسی محدود - برای محافظت در برابر حملات تکراری.
- نماینده کاربر - برای اطمینان از اینکه درخواست از طرف Google است.
- نشانه حامل - برای تضمین درخواستی که از طرف Google ارسال می شود به این سرویس در نظر گرفته شده است.
عامل کاربر برای همه درخواستهای Action Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/1.0 (KHTML, like Gecko; Gmail Actions)
است.
اگر همه بررسیها تایید شوند، سرویس میتواند به مرحله بعدی ادامه دهد.
مرحله 2: عمل را پردازش کنید
این سرویس باید عملکرد را همانطور که در پارامترهای URL و همچنین اطلاعات اضافی جمع آوری شده از کاربر مشخص شده است پردازش کند.
اطلاعات اضافی از کاربر در بدنه درخواست وجود دارد و با استفاده از رمزگذاری x-www-form-urleccod کدگذاری می شود. اطلاعات در ویژگی هایی تنظیم می شوند که نام آنها با ویژگی های Action مطابقت دارد. به عنوان مثال، ConfirmAction دارای ویژگی confirmed
است.
مرحله 3: یک کد پاسخ را برگردانید
هنگامی که سرویس با موفقیت پردازش و ضبط کرد، باید کد پاسخ 200 (OK)
را برگرداند. کدهای پاسخ زیر را می توان در موقعیت های خطا استفاده کرد:
کد پاسخ | درمان |
---|---|
400 (درخواست بد) | گوگل این اقدام را شکست خواهد داد. |
401 (غیر مجاز) | گوگل این اقدام را شکست خواهد داد. |
404 (یافت نشد) | گوگل این اقدام را شکست خواهد داد. |
408 (مهلت زمانی درخواست) | Google بعداً دوباره امتحان خواهد کرد. |
در صورت خرابی دائمی، گوگل به کاربر میگوید که عملکرد ناموفق بوده است و کاربر باید دستورالعملهای جایگزین داخل ایمیل را دنبال کند.