Push-Benachrichtigungen

Deine Aktion kann Nutzern bei Bedarf Benachrichtigungen senden, z. B. eine Erinnerung senden, wenn das Fälligkeitsdatum 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. Sie werden derzeit nicht auf Lautsprechern mit Sprachsteuerung, Smart Displays und anderen Oberflächen unterstützt.

Voraussetzungen

Ihr Projekt muss mindestens einen globalen Intent enthalten, der aufgerufen wird, wenn der Nutzer auf eine Push-Benachrichtigung von Assistant 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. So erstellen Sie diesen Intent:

  1. Rufen Sie die Actions Console auf und klicken Sie im Menü oben auf Entwickeln.
  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 zum Auslösen des Benachrichtigungsablaufs hinzu. 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 linken Menü unter Szenen auf die Szene, der Sie das Abo für Benachrichtigungen hinzufügen möchten.
  2. Klicken Sie im Abschnitt Nutzer-Intent-Verarbeitung der Szene 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 Umstellung die Systemszene Benachrichtigungen aus.

  5. Klicken Sie auf Speichern.

Systemszene konfigurieren

So konfigurieren Sie die Systemszene Notifications:

  1. Wählen Sie im linken Menü 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 Aktivierungsaufforderung anpassen eine Aufforderung ein, die Nutzern angezeigt wird, wenn sie aufgefordert werden, Push-Benachrichtigungen zu abonnieren. Die Aufforderung hat das Format „Ist es in Ordnung, wenn ich Push-Benachrichtigungen für $prompt sende?“.

  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 Event-Handler-Namen wie subscribe_to_notifications an.
  4. Aktivieren Sie Aufforderungen senden und geben Sie eine einfache Aufforderung an, um den Nutzer über Benachrichtigungen zu informieren:

    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 Aufforderungen senden und geben Sie eine einfache Aufforderung an, um den Nutzer darüber zu informieren, 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 der Nutzer Benachrichtigungen deaktiviert hat.

Webhook konfigurieren

So konfigurieren Sie den Webhook:

  1. Fügen Sie dem Webhook einen Intent-Handler hinzu, um das updatesUserId zu speichern:

    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, einen JSON-Dienstkontoschlüssel einrichten und herunterladen.

Anschließend können Sie die Google OAuth2-Clientbibliothek verwenden, um den Dienstkontoschlüssel gegen ein Zugriffstoken auszutauschen und das Token zur Authentifizierung Ihrer Anfragen an die Actions API zu verwenden.

Schlüssel für Dienstkonto abrufen

  1. Rufe die Google API Console auf und wähle dein Projekt aus der Drop-down-Liste Projekt auswählen aus.
  2. Klicken Sie auf Aktivieren, um die Actions API für Ihr Projekt zu aktivieren.
  3. Rufen Sie die Seite „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 Dienstkontonamen ein und klicken Sie auf Erstellen.
  6. Wählen Sie im Drop-down-Menü Rolle auswählen die Option Projekt > Inhaber aus.
  7. Klicken Sie auf Weiter.
  8. Klicken Sie auf Schlüssel erstellen, um die JSON-Datei des Dienstkontos herunterzuladen.

Schlüssel gegen ein Zugriffstoken eintauschen und eine Benachrichtigung senden

Wenn Sie Push-Benachrichtigungen über die Actions API senden möchten, 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 wird die Google API-Clientbibliothek für Node.js verwendet.

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

    npm install googleapis request --save

  2. Verwenden Sie den folgenden Code, um ein Zugriffstoken vom 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));
      });
    });