Obsługa żądań działań

Zgodnie z opisem w sekcji Deklarowanie działań gdy użytkownik wchodzi w interakcję z akcją w aplikacji, Google wysyła żądanie HTTP na adres URL zadeklarowany w działaniu.

Poniższy przykład dodaje przycisk ConfirmAction do e-maila z raportem wydatków:

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>

Mikrodane

<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>

Gdy użytkownik kliknie ten przycisk, Google wyśle do Twojej usługi żądanie HTTP z potwierdzeniem. Twoja usługa otrzymuje od Google następujące żądanie 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

W dalszej części tej strony opisano, jakie czynności musi wykonać usługa w domenie https://your-domain.com/approve?expenseId=abc123, aby prawidłowo obsłużyć to działanie. Obejmuje to m.in.:

  • Weryfikowanie żądania
  • Przetwarzanie ładunku
  • Zwracanie kodu odpowiedzi

Krok 1. Zweryfikuj żądanie

Zalecamy sprawdzenie usługi w firmie https://your-domain.com/approve?expenseId=abc123:

Klient użytkownika dla wszystkich żądań akcji to Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/1.0 (KHTML, like Gecko; Gmail Actions).

Jeśli wszystkie testy zakończą się powodzeniem, usługa może przejść do następnego kroku.

Krok 2. Przetwórz działanie

Usługa powinna przetwarzać działanie zgodnie z parametrami adresu URL oraz dodatkowymi informacjami zebranymi od użytkownika.

Dodatkowe informacje od użytkownika znajdują się w treści żądania i są zakodowane przy użyciu kodowania x-www-form-urlecoded. Informacje są ustawiane we właściwościach, których nazwy odpowiadają właściwościom Action. Na przykład ConfirmAction ma właściwość confirmed.

Krok 3. Zwróć kod odpowiedzi

Gdy usługa przetworzy i zarejestruje działanie, powinna zwrócić kod odpowiedzi 200 (OK). W przypadku błędów można użyć tych kodów odpowiedzi:

Kod odpowiedzi leczenia,
400 (Nieprawidłowe żądanie) Google nie podejmie żadnych działań.
401 (Brak autoryzacji) Google nie podejmie żadnych działań.
404 (nie znaleziono) Google nie podejmie żadnych działań.
408 (Upłynął limit czasu żądania) Google spróbuje ponownie później.

W przypadku trwałej awarii Google poinformuje użytkownika o niepowodzeniu działania i poinformuje go, że powinien wykonać instrukcje alternatywne podane w e-mailu.

Dalsza lektura