Obsługa żądań działań

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

W tym przykładzie do e-maila z raportem o wydatkach dodawany jest przycisk 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>

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 przycisk, Google wyśle do Twojej usługi żądanie HTTP, aby zarejestrować potwierdzenie. Twoja usługa otrzymuje od Google to żą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 pozostałej części tej strony opisujemy, co musi zrobić usługa pod adresem https://your-domain.com/approve?expenseId=abc123, aby prawidłowo obsłużyć działanie. Obejmuje to m.in.:

  • Weryfikacja prośby
  • Przetwarzanie ładunku
  • Zwracanie kodu odpowiedzi

Krok 1. Sprawdź prośbę

Usługa pod adresem https://your-domain.com/approve?expenseId=abc123 powinna sprawdzić:

Klient użytkownika w przypadku wszystkich żądań dotyczących działań 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. Przetwarzanie działania

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ą kodowane przy użyciu kodowania x-www-form-urlecoded. Informacje są ustawiane we właściwościach, których nazwy odpowiadają właściwościom działania. Na przykład element 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 sytuacjach błędów można używać tych kodów odpowiedzi:

Kod odpowiedzi Grupa eksperymentalna
400 (nieprawidłowe żądanie) Google odrzuci to działanie.
401 (brak autoryzacji) Google odrzuci to działanie.
404 (nie znaleziono) Google odrzuci to działanie.
408 (przekroczenie limitu czasu żądania) Google spróbuje ponownie później.

W przypadku trwałego błędu Google poinformuje użytkownika, że działanie nie powiodło się i że powinien postępować zgodnie z instrukcjami zawartymi w e-mailu.

Więcej informacji