Déployer le traitement (Dialogflow)

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

Si vous avez déjà déployé votre webhook sur une plate-forme d'hébergement Web, vous pouvez passez à la section Connecter le webhook à votre action. Notez que la dernière version les é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. Configurez et initialisez la CLI Firebase. Si la commande suivante échoue avec une erreur EACCES, vous devrez peut-être modifiez 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 Action et initialisez Firebase. Vous serez invité à sélectionner les fonctionnalités de la CLI Firebase que vous souhaitez configurer pour votre Projet Actions. Sélectionnez Functions et d'autres fonctionnalités susceptibles de vous intéresser. 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 de à 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. vous demandant quelle langue vous souhaitez utiliser. Effectuez votre sélection à l'aide des 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. Indiquez si vous souhaitez utiliser ESLint pour détecter les bugs potentiels et appliquer le style en saisissant 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 aux lignes suivantes 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, semblables à ce qui suit. Vous aurez besoin de l'URL de la fonction pour 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

Connecter le webhook à votre action

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

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

{
  "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"
}