Déployer le traitement (Dialogflow)

Une fois que vous avez créé le traitement du webhook, déployez-le en production et associez-le à votre action. Les étapes suivantes vous expliquent comment configurer votre environnement à déployer sur Cloud Functions for Firebase pour l'hébergement de production. Toutefois, vous pouvez choisir n'importe quelle plate-forme d'hébergement Web compatible avec les requêtes et les réponses HTTPS pour héberger votre traitement.

Si vous avez déjà déployé votre webhook sur une plate-forme d'hébergement Web, vous pouvez passer à l'étape Connecter le webhook à votre action. Notez que les dernières étapes du processus ci-dessous diffèrent selon que vous utilisez Dialogflow ou le SDK Actions.

Déployer une application dans Cloud Functions for Firebase

  1. Téléchargez et installez Node.js.
  2. Configurer et initialiser la CLI Firebase Si la commande suivante échoue avec une erreur EACCES, vous devrez peut-être modifier les autorisations npm.

    npm install -g firebase-tools
    
  3. Authentifiez l'outil Firebase avec votre compte Google:

    firebase login
    
  4. Accédez au répertoire de votre projet d'action et initialisez Firebase. Vous serez invité à sélectionner les fonctionnalités de la CLI Firebase que vous souhaitez configurer pour votre projet Actions. Choisissez Functions et d'autres fonctionnalités que vous souhaitez utiliser, comme Firestore, puis appuyez sur Entrée pour confirmer et continuer:

    cd <cloud_function_dir>
    firebase init
    
  5. Associez l'outil Firebase à votre projet Actions en le sélectionnant à l'aide des touches fléchées pour parcourir la liste des projets:

    .
  6. Une fois le projet choisi, l'outil Firebase lance la configuration de Functions en vous demandant quel langage vous souhaitez utiliser. Utilisez les touches fléchées et appuyez sur Entrée pour continuer.

    === Functions Setup
    A functions directory will be created in your project with a Node.js package pre-configured. Functions can be deployed with firebase deploy. ? What language would you like to use to write Cloud Functions? (Use arrow keys) > JavaScript TypeScript
  7. Choisissez si vous souhaitez utiliser ESLint pour détecter les bugs probables et appliquer le style Y ou N:

    ? Do you want to use ESLint to catch probable bugs and enforce style? (Y/n)
  8. Obtenez les dépendances du projet en saisissant Y dans l'invite:

    ? Do you want to install dependencies with npm now? (Y/n)

    Une fois la configuration terminée, un résultat semblable à celui-ci s'affiche:

    ✔  Firebase initialization complete!
  9. Installez la dépendance actions-on-google:

    cd <cloud_function_dir>/functions
    npm install actions-on-google
    
  10. Obtenez les dépendances de fulfillment et déployez la fonction de fulfillment:

    npm install
    firebase deploy --only functions
    

    Le déploiement prend quelques minutes. Une fois l'opération terminée, un résultat semblable à celui-ci s'affiche. Vous aurez besoin de l'URL de la fonction pour entrer dans Dialogflow.

    ✔  Deploy complete!
    Project Console: https://console.firebase.google.com/project/exampleproject-123/overview Function URL (cloudFunctionName): https://us-central1-exampleproject-123.cloudfunctions.net/cloudFunctionName

Associer le webhook à votre action

Si vous utilisez Dialogflow:dans la console Dialogflow, accédez à Fulfillment, définissez le bouton Webhook sur ACTIVÉ et remplacez l'URL du champ URL par l'URL de la fonction.

Si vous utilisez le SDK Actions:créez un objet dans l'objet conversations pour déclarer votre traitement dans votre package d'actions:

{
  "actions": [
    {
      "description": "Default Welcome Intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "myFulfillmentFunction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to myFulfillmentFunction"
          ]
        }
      }
    }
  ],
  "conversations": {
    "myFulfillmentFunction": {
      "name": "myFulfillmentFunction",
      "url": "https://us-central1-myprojectname-ab123.cloudfunctions.net/cloudFunctionName"
    }
  },
  "locale": "en"
}