Po utworzeniu realizacji webhooka wdróż ją w środowisku produkcyjnym i połącz z akcją. Z kolejnych kroków dowiesz się, jak skonfigurować środowisko do wdrożenia w Cloud Functions dla Firebase w zakresie hostingu produkcyjnego. Możesz jednak wybrać dowolną platformę hostingu WWW, która obsługuje żądania i odpowiedzi HTTPS, aby hostować Twoją realizację.
Jeśli webhook został już wdrożony na platformie hostingu WWW, możesz przejść do sekcji Łączenie webhooka z akcją. Pamiętaj, że końcowe kroki opisane poniżej różnią się w zależności od tego, czy używasz Dialogflow czy pakietu SDK Actions.
Wdrażanie w Cloud Functions dla Firebase
- Pobierz i zainstaluj Node.js.
Skonfiguruj i zainicjuj interfejs wiersza poleceń Firebase. Jeśli poniższe polecenie nie powiedzie się i pojawi się błąd
EACCES
, może być konieczna zmiana uprawnień npm.npm install -g firebase-tools
Uwierzytelnij narzędzie Firebase za pomocą konta Google:
firebase login
Przejdź do katalogu projektu Action i zainicjuj Firebase. Pojawi się prośba o wybranie funkcji interfejsu wiersza poleceń Firebase, które chcesz skonfigurować dla projektu Actions. Wybierz
Functions
i inne funkcje, których chcesz używać, na przykład Firestore, a następnie naciśnij Enter, aby potwierdzić i przejść dalej:cd <cloud_function_dir> firebase init
Powiąż narzędzie Firebase z projektem w Actions, wybierając je za pomocą klawiszy strzałek do poruszania się po liście projektów:
. Po wybraniu projektu narzędzie Firebase rozpocznie konfigurację funkcji z pytaniem, jakiego języka chcesz użyć. Wybierz za pomocą klawiszy strzałek i naciśnij Enter, aby kontynuować.
=== 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 TypeScriptWybierz, czy chcesz używać ESLint do wychwytywania prawdopodobnych błędów i egzekwowania stylu pisania
Y
lubN
:? Do you want to use ESLint to catch probable bugs and enforce style? (Y/n)
Aby uzyskać zależności projektu, wpisz w wierszu polecenie
Y
:? Do you want to install dependencies with npm now? (Y/n)
Po zakończeniu konfiguracji zobaczysz dane wyjściowe podobne do tych:
✔ Firebase initialization complete!
Zainstaluj zależność actions-on-google:
cd <cloud_function_dir>/functions npm install actions-on-google
Uzyskaj zależności dotyczące realizacji i wdróż funkcję realizacji:
npm install firebase deploy --only functions
Wdrożenie trwa kilka minut. Gdy skończysz, zobaczysz dane wyjściowe podobne do tych poniżej. Aby go wpisać w Dialogflow, potrzebujesz adresu URL funkcji.
✔ Deploy complete!
Project Console: https://console.firebase.google.com/project/exampleproject-123/overview Function URL (cloudFunctionName): https://us-central1-exampleproject-123.cloudfunctions.net/cloudFunctionName
Połącz webhooka z akcją
Jeśli korzystasz z Dialogflow: w konsoli Dialogflow wybierz Fulfillment (Realizacja), ustaw przycisk Webhook na ENABLED i zastąp adres URL w polu URL wartością Functions URL (Adres URL funkcji).
Jeśli korzystasz z pakietu SDK Actions: utwórz obiekt w obiekcie conversations
, aby zadeklarować realizację w pakiecie Action:
{ "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" }