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

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

عندما ينقر المستخدم على الزر، ترسل 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 مما يلي:

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

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

الخطوة 2: معالجة الإجراء

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

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

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

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

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

في حال حدوث أخطاء دائمة، تُعلِم Google المستخدم بأنّ الإجراء لم ينجح، وأنّه عليه اتّباع تعليمات بديلة داخل الرسالة الإلكترونية.

محتوى إضافي للقراءة