Auftragsausführung bereitstellen (Dialogflow)

Nachdem Sie die Webhook-Auftragsausführung erstellt haben, stellen Sie sie in der Produktion bereit und stellen Sie eine Verbindung her an deine Aktion. Die folgenden Schritte zeigen, wie Sie Ihre Umgebung einrichten können zur Bereitstellung in Cloud Functions for Firebase für das Produktions-Hosting Sie können jedoch können Sie eine beliebige Webhosting-Plattform auswählen, die HTTPS-Anfragen und Antworten zum Hosten der Auftragsausführung.

Wenn Sie den Webhook bereits auf einer Webhosting-Plattform bereitgestellt haben, können Sie Fahren Sie mit Webhook mit Ihrer Aktion verbinden fort. Die letzte Die Schritte im folgenden Prozess unterscheiden sich je nachdem, ob Sie Dialogflow oder den Actions-SDK.

In Cloud Functions for Firebase bereitstellen

  1. Laden Sie Node.js herunter und installieren Sie es.
  2. Richten Sie die Firebase CLI ein und initialisieren Sie sie. Wenn der folgende Befehl fehlschlägt, EACCES-Fehler vorliegt, müssen Sie npm-Berechtigungen ändern.

    npm install -g firebase-tools
    
  3. Authentifizieren Sie das Firebase-Tool mit Ihrem Google-Konto:

    firebase login
    
  4. Rufen Sie das Action-Projektverzeichnis auf und initialisieren Sie Firebase. Sie werden die Firebase CLI-Funktionen auswählen, die Sie für Ihre Actions-Projekt. Wählen Sie Functions und andere Funktionen aus, die Sie vielleicht verwenden möchten. wie Firestore ein. Drücken Sie dann die Eingabetaste, um den Vorgang zu bestätigen und fortzufahren:

    cd <cloud_function_dir>
    firebase init
    
  5. Verknüpfen Sie das Firebase-Tool mit Ihrem Actions-Projekt, indem Sie es über können Sie mit den Pfeiltasten durch die Projektliste navigieren:

  6. Nachdem Sie das Projekt ausgewählt haben, startet das Firebase-Tool die Einrichtung von Functions welche Sprache Sie verwenden möchten. Verwenden Sie die Pfeiltasten und drücken Sie die Eingabetaste, um fortzufahren.

    === 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. Wähle aus, ob du ESLint verwenden möchtest, um mögliche Fehler zu erkennen und den Stil zu erzwingen Y oder N eingeben:

    ? Do you want to use ESLint to catch probable bugs and enforce style? (Y/n)
  8. Rufen Sie die Projektabhängigkeiten ab, indem Sie Y in die Eingabeaufforderung eingeben:

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

    Sobald die Einrichtung abgeschlossen ist, sehen Sie in etwa folgende Ausgabe:

    ✔  Firebase initialization complete!
  9. Installieren Sie die Abhängigkeit actions-on-google:

    cd <cloud_function_dir>/functions
    npm install actions-on-google
    
  10. Rufen Sie die Abhängigkeiten der Auftragsausführung ab und stellen Sie die Auftragsausführungsfunktion bereit:

    npm install
    firebase deploy --only functions
    

    Die Bereitstellung dauert einige Minuten. Danach wird die Ausgabe ähnlich wie im Folgenden dargestellt. Sie benötigen die Funktions-URL zur Eingabe 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

Webhook mit Ihrer Aktion verbinden

Wenn Sie Dialogflow verwenden: Geben Sie im Dialogflow-Konsole: Rufen Sie Fulfillment (Auftragsausführung) – ändern Sie den Wert für die Schaltfläche Webhook (Webhook) auf AKTIVIERT und ersetzen Sie die URL im Feld URL durch die Funktions-URL.

Wenn Sie das Actions SDK verwenden:Erstellen Sie ein Objekt. im Objekt conversations, um die Ausführung in Ihrer Aktion zu deklarieren Paket:

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