Aktionsanfragen bearbeiten

Wie unter Aktionen deklarieren beschrieben, sendet Google eine HTTP-Anfrage an eine in der Aktion deklarierte URL, wenn ein Nutzer mit einer In-App-Aktion interagiert.

Im folgenden Beispiel wird einer E-Mail zu einem Spesenabrechnungsbericht die Schaltfläche ConfirmAction hinzugefügt:

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>

Mikrodaten

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

Wenn der Nutzer auf die Schaltfläche klickt, wird von Google eine HTTP-Anfrage an Ihren Dienst gesendet, um die Bestätigung zu erfassen. Ihr Dienst empfängt die folgende HTTP-Anfrage von 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

Im weiteren Verlauf dieser Seite wird beschrieben, was der Dienst unter https://your-domain.com/approve?expenseId=abc123 tun muss, um die Aktion richtig zu verarbeiten. Dazu zählen:

  • Anfrage überprüfen
  • Payload verarbeiten
  • Antwortcode zurückgeben

Schritt 1: Anfrage bestätigen

Der Dienst unter https://your-domain.com/approve?expenseId=abc123 sollte Folgendes prüfen:

  • Limited Use Access Token: Zum Schutz vor Replay-Angriffen.
  • User-Agent: Damit wird sichergestellt, dass die Anfrage von Google stammt.
  • Inhaber-Token: Damit wird sichergestellt, dass die Anfrage von Google für den Dienst bestimmt ist.

Der User-Agent für alle Aktionsanfragen ist Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/1.0 (KHTML, like Gecko; Gmail Actions).

Wenn alle Prüfungen bestanden wurden, kann der Dienst mit dem nächsten Schritt fortfahren.

Schritt 2: Aktion verarbeiten

Der Dienst sollte die Aktion gemäß den URL-Parametern sowie zusätzliche Informationen, die vom Nutzer erhoben werden, verarbeiten.

Zusätzliche Informationen des Nutzers befinden sich im Haupttext der Anfrage und sind mit der x-www-form-urlecoded-Codierung codiert. Die Informationen werden in Properties festgelegt, deren Namen den Properties von „Action“ entsprechen. ConfirmAction hat beispielsweise die Eigenschaft confirmed.

Schritt 3: Antwortcode zurückgeben

Nachdem der Dienst die Aktion erfolgreich verarbeitet und aufgezeichnet hat, sollte er den Antwortcode 200 (OK) zurückgeben. Die folgenden Antwortcodes können in Fehlersituationen verwendet werden:

Antwortcode Testgruppe
400 (Bad Request) Google lehnt die Aktion ab.
401 (Unauthorized) Google lehnt die Aktion ab.
404 (Nicht gefunden) Google lehnt die Aktion ab.
408 (Request Timeout) Google wird es später noch einmal versuchen.

Im Falle eines dauerhaften Fehlers informiert Google den Nutzer darüber, dass die Aktion fehlgeschlagen ist und er die alternativen Anweisungen in der E-Mail befolgen soll.

Weiterführende Literatur