Notifications push

Votre action peut envoyer des notifications push aux utilisateurs lorsque cela est pertinent (par exemple, en envoyant un rappel à l'approche de la date limite d'une tâche).

Ce guide explique comment configurer les notifications push pour votre action.

Surfaces compatibles

Les notifications push sont disponibles sur les appareils Android et iOS (l'application Assistant doit être installée sur les appareils iOS pour les recevoir). Ils ne sont actuellement pas compatibles avec les enceintes à commande vocale, les écrans connectés et d'autres surfaces.

Conditions préalables

Votre projet doit contenir au moins un intent global, appelé lorsque l'utilisateur appuie sur une notification push envoyée par l'Assistant.

Premiers pas

Les sections suivantes décrivent comment configurer les notifications push dans votre action.

Créer un intent pour le déclenchement

L'intent que vous créez dans cette section déclenche le flux de notifications. Pour créer cet intent, procédez comme suit:

  1. Accédez à la console Actions, puis cliquez sur Développer dans le menu supérieur.
  2. Cliquez sur Intents dans le menu de gauche pour développer la section.
  3. Cliquez sur en bas de la liste et saisissez un nom pour le nouvel intent.
  4. Appuyez sur Enter/Return pour créer l'intent.
  5. Ajoutez des phrases d'entraînement pour déclencher le flux de notifications. Par exemple :

    • Notify me
    • Send notifications
    • Subscribe to notifications
  6. Cliquez sur Enregistrer.

Transition vers l'intent système

Pour configurer la transition vers la scène système Notifications, procédez comme suit:

  1. Sous Scenes (Scènes) dans le menu de gauche, cliquez sur la scène à laquelle vous souhaitez ajouter le flux d'abonnement aux notifications.
  2. Dans la section User intent management (Gestion des intents utilisateur) de la scène, cliquez sur + pour ajouter un gestionnaire d'intents.
  3. Sous Intent, sélectionnez l'intent que vous avez créé à la section précédente.
  4. Sous Transition, sélectionnez la scène système Notifications.

  5. Cliquez sur Enregistrer.

Configurer la scène système

Pour configurer la scène système Notifications, procédez comme suit:

  1. Sous Scenes (Scènes) dans le menu de gauche, sélectionnez la nouvelle scène système Notifications.
  2. Dans la section Configure intent (Configurer l'intent), cliquez sur Select intent (Sélectionner un intent).
  3. Dans la section Sélectionner un intent, sélectionnez l'intent à mettre en correspondance lorsqu'un utilisateur appuie sur une notification push.

  4. Sous Personnaliser l'invite d'activation, saisissez l'invite qui s'affiche lorsque les utilisateurs sont invités à s'abonner aux notifications push. Cette invite se présente sous la forme suivante : "Est-ce que je peux envoyer des notifications push pour $prompt".

  5. Cliquez sur Enregistrer.

Configurer l'activation

Pour configurer l'activation des notifications push, procédez comme suit:

  1. Sous Scenes (Scènes), sélectionnez la scène système Notifications.
  2. Sous Conditions, sélectionnez Si l'utilisateur dit "oui".
  3. Activez Appeler votre webhook et indiquez un nom de gestionnaire d'événements, tel que subscribe_to_notifications.
  4. Activez l'option Envoyer des invites et indiquez une invite simple pour indiquer à l'utilisateur qu'il recevra des notifications:

    candidates:
    - first simple:
      variants:
      - speech: 'Great, I'll send you notifications.'
    
  5. Sous Transition, sélectionnez Terminer la conversation pour mettre fin à la conversation une fois qu'un utilisateur s'est abonné aux notifications.

Configurer la désactivation

Pour configurer la désactivation des notifications push, procédez comme suit:

  1. Sous Conditions, sélectionnez Si l'utilisateur dit "non".
  2. Activez Envoyer des invites et indiquez une invite simple pour indiquer à l'utilisateur qu'il ne recevra pas de notifications:

    candidates:
    - first simple:
      variants:
      - speech: Okay, I won't send you notifications.
    
  3. Sous Transition, sélectionnez Terminer la conversation pour mettre fin à la conversation après qu'un utilisateur a désactivé les notifications.

Configurer le webhook

Pour configurer votre webhook, procédez comme suit:

  1. Dans votre webhook, ajoutez un gestionnaire d'intent pour stocker le updatesUserId:

    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.)
      }
    });
    

Envoyer des notifications

Les notifications push sont envoyées aux utilisateurs à l'aide de l'API Actions. Pour utiliser cette API, vous devez l'activer dans votre projet Google Cloud, puis configurer et télécharger une clé de compte de service JSON.

Vous pouvez ensuite utiliser la bibliothèque cliente Google OAuth2 pour échanger la clé du compte de service contre un jeton d'accès et utiliser ce jeton pour authentifier vos requêtes auprès de l'API Actions.

Obtenir une clé de compte de service

  1. Accédez à la console Google APIs, puis sélectionnez votre projet dans le menu déroulant Sélectionner un projet.
  2. Cliquez sur Activer afin d'activer l'API Actions pour votre projet.
  3. Accédez à la page "Identifiants" de la console Google Cloud, puis sélectionnez votre projet dans le menu déroulant Sélectionner un projet.
  4. Cliquez sur Créer des identifiants > Compte de service.
  5. Saisissez un nom de compte de service, puis cliquez sur Créer.
  6. Dans le menu déroulant Sélectionnez un rôle, sélectionnez Projet > Propriétaire.
  7. Cliquez sur Continuer.
  8. Cliquez sur Créer une clé pour télécharger le fichier JSON du compte de service.

Échanger la clé contre un jeton d'accès et envoyer une notification

Pour envoyer des notifications push via l'API Actions, vous devez échanger la clé du compte de service contre un jeton d'accès. Pour ce faire, nous vous recommandons d'utiliser une bibliothèque cliente des API Google. Dans la série d'extraits de code ci-dessous, nous utilisons la bibliothèque cliente des API Google pour Node.js.

  1. Installez la bibliothèque cliente de l'API Google et exécutez la requête suivante:

    npm install googleapis request --save

  2. Utilisez le code suivant pour obtenir un jeton d'accès à partir de la clé du compte de service et envoyer une notification push:

    // 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));
      });
    });