Push-Benachrichtigungen

Deine Aktion kann Nutzern Push-Benachrichtigungen senden, wenn sie relevant sind, z. B. eine Erinnerung senden, wenn der Abgabetermin einer Aufgabe näher rückt.

In diesem Leitfaden wird beschrieben, wie du Push-Benachrichtigungen für deine Aktion einrichtest.

Unterstützte Oberflächen

Push-Benachrichtigungen sind auf Android- und iOS-Geräten verfügbar. Auf iOS-Geräten muss die Assistant App installiert sein, um Push-Benachrichtigungen zu erhalten. Auf Lautsprechern mit Sprachsteuerung, Smart Displays und anderen Oberflächen werden sie derzeit nicht unterstützt.

Vorbereitung

Ihr Projekt muss mindestens einen globalen Intent enthalten, der aufgerufen wird, wenn der Nutzer auf eine von Assistant empfangene Push-Benachrichtigung tippt.

Erste Schritte

In den folgenden Abschnitten wird beschrieben, wie du Push-Benachrichtigungen in deiner Aktion einrichtest.

Intent zum Auslösen erstellen

Der Intent, den Sie in diesem Abschnitt erstellen, löst den Benachrichtigungsablauf aus. Zum Erstellen für diesen Intent, gehen Sie so vor:

  1. Rufen Sie die Actions Console auf und klicken Sie im Menü oben auf Develop.
  2. Klicken Sie im linken Menü auf Intents, um den Bereich zu maximieren.
  3. Klicken Sie unten in der Liste auf das und geben Sie einen Namen für den neuen Intent ein.
  4. Drücken Sie Enter/Return, um den neuen Intent zu erstellen.
  5. Fügen Sie Trainingsformulierungen hinzu, um den Benachrichtigungsablauf auszulösen. Dazu einige Beispiele:

    • Notify me
    • Send notifications
    • Subscribe to notifications
  6. Klicken Sie auf Speichern.

Übergang zu System Intent

So richten Sie den Übergang zur Systemszene Notifications ein:

  1. Klicken Sie im Menü auf der linken Seite unter Szenen auf die Szene, der Sie Benachrichtigungen hinzufügen möchten.
  2. Klicken Sie im Abschnitt Umgang mit Nutzer-Intents auf +, um einen neuen Intent-Handler hinzuzufügen.
  3. Wählen Sie unter Intent den Intent aus, den Sie im vorherigen Abschnitt erstellt haben.
  4. Wählen Sie unter Übergang die Systemszene Benachrichtigungen aus.

  5. Klicken Sie auf Speichern.

Systemszene konfigurieren

So konfigurieren Sie die Systemszene: Notifications:

  1. Wählen Sie im Menü auf der linken Seite unter Szenen die neue Systemszene Benachrichtigungen aus.
  2. Klicken Sie unter Intent konfigurieren auf Intent auswählen.
  3. Wählen Sie im Abschnitt Intent auswählen den Intent aus, der zugeordnet werden soll, wenn ein Nutzer auf eine Push-Benachrichtigung tippt.

  4. Geben Sie unter Opt-in-Aufforderung anpassen einen Prompt ein, der Nutzern angezeigt wird, wenn sie aufgefordert werden, Push-Benachrichtigungen zu abonnieren. Die Aufforderung hat die Form „Is it ok if I send push notifications for $prompt“ (Ist es in Ordnung, wenn ich Push-Benachrichtigungen für $prompt senden).

  5. Klicken Sie auf Speichern.

Aktivierung konfigurieren

So konfigurieren Sie die Aktivierung von Push-Benachrichtigungen:

  1. Wählen Sie unter Szenen die Systemszene Benachrichtigungen aus.
  2. Wählen Sie unter Bedingungen die Option Wenn der Nutzer „Ja“ sagt aus.
  3. Aktivieren Sie Webhook aufrufen und geben Sie einen Namen für den Event-Handler an, z. B. subscribe_to_notifications.
  4. Aktiviere Prompts senden und lass den Nutzer mit einer einfachen Aufforderung wissen, dass Benachrichtigungen gesendet werden:

    candidates:
    - first simple:
      variants:
      - speech: 'Great, I'll send you notifications.'
    
  5. Wählen Sie unter Umstellung die Option Unterhaltung beenden aus, um die Unterhaltung zu beenden, nachdem ein Nutzer Benachrichtigungen abonniert hat.

Deaktivierung konfigurieren

So konfigurieren Sie die Deaktivierung von Push-Benachrichtigungen:

  1. Wählen Sie unter Bedingungen die Option Wenn der Nutzer „Nein“ sagt aus.
  2. Aktivieren Sie Prompts senden und geben Sie dem Nutzer mit einer einfachen Aufforderung an, dass er keine Benachrichtigungen erhält:

    candidates:
    - first simple:
      variants:
      - speech: Okay, I won't send you notifications.
    
  3. Wählen Sie unter Umstellung die Option Unterhaltung beenden aus, um die Unterhaltung zu beenden, nachdem ein Nutzer Benachrichtigungen deaktiviert hat.

Webhook konfigurieren

So konfigurieren Sie den Webhook:

  1. Fügen Sie dem Webhook einen Intent-Handler zum Speichern von updatesUserId hinzu:

    app.handle('subscribe_to_notifications', conv => {
      const intentName = '<name_of_intent_to_trigger>';
      const notificationsSlot = conv.session.params['NotificationSlot_${intentName}'];
      if(notificationsSlot.permissionStatus == 'PERMISSION_GRANTED') {
        const updateUserId = notificationsSlot.additionalUserData.updateUserId;
        // Store the user ID and the notification's target intent for later use.
        // (Use a database, like Firestore, for best practice.)
      }
    });
    

Benachrichtigungen senden

Push-Benachrichtigungen werden über die Actions API an Nutzer gesendet. Wenn Sie diese API verwenden möchten, müssen Sie sie in Ihrem Google Cloud-Projekt aktivieren und einen JSON-Dienstkontoschlüssel einrichten und herunterladen.

Sie können dann die Google OAuth2-Clientbibliothek verwenden, um den Dienstkontoschlüssel gegen ein Zugriffstoken auszutauschen, und das Token verwenden, um Ihre Anfragen an die Actions API zu authentifizieren.

Schlüssel für Dienstkonto abrufen

  1. Gehen Sie zur Google API Console und wählen Sie Ihr Projekt aus dem Drop-down-Menü Projekt auswählen aus.
  2. Klicken Sie auf Aktivieren, um die Actions API für Ihr Projekt zu aktivieren.
  3. Rufen Sie die Seite mit den Anmeldedaten der Google Cloud Console auf und wählen Sie im Drop-down-Menü Projekt auswählen Ihr Projekt aus.
  4. Klicken Sie auf Anmeldedaten erstellen > Dienstkonto.
  5. Geben Sie einen Namen für das Dienstkonto ein und klicken Sie auf Erstellen.
  6. Wählen Sie im Drop-down-Menü Rolle auswählen die Option Projekt > Inhaber.
  7. Klicken Sie auf Weiter.
  8. Klicken Sie auf Schlüssel erstellen, um die JSON-Datei des Dienstkontos herunterzuladen.

Schlüssel gegen Zugriffstoken austauschen und Benachrichtigung senden

Zum Senden von Push-Benachrichtigungen über die Actions API müssen Sie den Dienstkontoschlüssel gegen ein Zugriffstoken austauschen. Wir empfehlen hierfür die Verwendung einer Google API-Clientbibliothek. In den folgenden Code-Snippets verwenden wir die Google API-Clientbibliothek für Node.js.

  1. Installieren Sie die Google API-Clientbibliothek und senden Sie folgende Anfrage:

    npm install googleapis request --save

  2. Verwenden Sie den folgenden Code, um ein Zugriffstoken aus dem Dienstkontoschlüssel abzurufen und eine Push-Benachrichtigung zu senden:

    // Use the Actions API to send a Google Assistant push notification.
    let client = auth.fromJSON(require('./service-account.json'));
    client.scopes = ['https://www.googleapis.com/auth/actions.fulfillment.conversation'];
    let notification = {
      userNotification: {
        title: 'Example notification title',
      },
      target: {
        userId: '<UPDATES_USER_ID>',
        intent: 'Notifications Intent',
      },
    };
    client.authorize((err, tokens) => {
      if (err) {
        throw new Error('Auth error: ${err}');
      }
      request.post('https://actions.googleapis.com/v2/conversations:send', {
        'auth': {
          'bearer': tokens.access_token,
        },
        'json': true,
        'body': {'customPushMessage': notification, 'isInSandbox': true},
      }, (err, httpResponse, body) => {
        if (err) {
          throw new Error('API request error: ${err}');
        }
        console.log('${httpResponse.statusCode}: ' + '${httpResponse.statusMessage}');
        console.log(JSON.stringify(body));
      });
    });