معالجة طلبات الإجراءات

كما هو موضّح في توضيح الإجراءات، عندما يتفاعل مستخدم مع إجراء داخل التطبيق، ترسل 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>

البيانات الجزئية

<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 بالتحقّق مما يلي:

وكيل المستخدم لجميع طلبات الإجراءات هو Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/1.0 (KHTML, like Gecko; Gmail Actions).

في حال اجتياز جميع عمليات التحقّق، يمكن نقل الخدمة إلى الخطوة التالية.

الخطوة الثانية: معالجة الإجراء

يجب أن تعالج الخدمة الإجراء على النحو المحدّد في معلَمات عنوان URL، بالإضافة إلى المعلومات الإضافية التي يتم جمعها من المستخدم.

وتتوفر معلومات إضافية من المستخدم في نص الطلب، ويتم ترميزها باستخدام الترميز x-www-form-urlecoded. يتم ضبط المعلومات في خصائص تتوافق أسماؤها مع خصائص الإجراء. على سبيل المثال، تحتوي ConfirmAction على السمة confirmed.

الخطوة 3: عرض رمز استجابة

بعد معالجة الخدمة للإجراء وتسجيله بنجاح، من المُفترَض أن تعرض رمز الاستجابة 200 (OK). يمكن استخدام رموز الاستجابة التالية في حالات الخطأ:

رمز الاستجابة العلاج
400 (طلب غير صالح) ستفشل Google في الإجراء.
401 (غير مصرح به) ستفشل Google في الإجراء.
404 (لم يتم العثور عليها) ستفشل Google في الإجراء.
408 (انتهاء مهلة الطلب) ستعيد Google المحاولة لاحقًا.

في حالة الإخفاق الدائم، ستخبر Google المستخدم بفشل الإجراء وأنه ينبغي على المستخدم اتباع الإرشادات البديلة الموجودة في الرسالة الإلكترونية.

قراءات إضافية