همانطور که در Declare actions توضیح داده شد، وقتی کاربر با یک اکشن درون برنامهای تعامل میکند، گوگل یک درخواست 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>
میکرودیتا
<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 به سرویس شما ارسال میکند و تأیید را ثبت میکند. سرویس شما درخواست HTTP زیر را از گوگل دریافت میکند:
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 برای مدیریت صحیح این اقدام چه کاری باید انجام دهد. این شامل موارد زیر است:
- تأیید درخواست
- پردازش بار مفید
- برگرداندن کد پاسخ
مرحله ۱: تأیید درخواست
توصیه میکنیم سرویس https://your-domain.com/approve?expenseId=abc123 موارد زیر را تأیید کند:
- توکنهای دسترسی با کاربرد محدود : محافظت در برابر حملات بازپخش.
- نماینده کاربر : اطمینان حاصل کنید که درخواست از طرف گوگل ارسال شده است.
- توکنهای حامل : اطمینان حاصل کنید که درخواست از گوگل برای سرویس در نظر گرفته شده است.
عامل کاربری برای همه درخواستهای اقدام، Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/1.0 (KHTML, like Gecko; Gmail Actions) است.
اگر همه بررسیها با موفقیت انجام شود، سرویس میتواند به مرحله بعدی برود.
مرحله ۲: پردازش عمل
این سرویس باید عمل را مطابق با پارامترهای URL و همچنین اطلاعات اضافی جمعآوریشده از کاربر پردازش کند.
اطلاعات اضافی از کاربر در بدنه درخواست قرار میگیرد و با استفاده از فرمت x-www-form-urlencoded کدگذاری میشود. این اطلاعات در ویژگیهایی قرار میگیرند که نام آنها با ویژگیهای اکشن مطابقت دارد. به عنوان مثال، ConfirmAction دارای ویژگی confirmed است.
مرحله ۳: کد پاسخ را برگردانید
پس از اینکه سرویس با موفقیت عملیات را پردازش و ثبت کرد، کد پاسخ 200 (OK) را برگردانید. میتوانید از کدهای پاسخ زیر در موقعیتهای خطا استفاده کنید:
| کد پاسخ | درمان |
|---|---|
| ۴۰۰ (درخواست نامناسب) | گوگل این اقدام را به عنوان ناموفق علامتگذاری میکند. |
| ۴۰۱ (غیرمجاز) | گوگل این اقدام را به عنوان ناموفق علامتگذاری میکند. |
| ۴۰۴ (یافت نشد) | گوگل این اقدام را به عنوان ناموفق علامتگذاری میکند. |
| ۴۰۸ (درخواست مهلت زمانی) | گوگل بعداً دوباره امتحان میکند. |
برای خطاهای دائمی، گوگل به کاربر اطلاع میدهد که اقدام ناموفق بوده و باید دستورالعملهای جایگزین داخل ایمیل را دنبال کند.