אחרי שמסיימים ליצור את מילוי הבקשה של תגובה לפעולה מאתר אחר (webhook), צריך לפרוס אותה בסביבת הייצור ולחבר אותה לפעולה. בשלבים הבאים מוסבר איך להגדיר את הסביבה כך שתהיה פריסה ב-Cloud Functions for Firebase לצורך אירוח בסביבת ייצור. עם זאת, תוכלו לבחור כל פלטפורמת אירוח באינטרנט שתומכת בבקשות ובתגובות HTTPS לאירוח מילוי הבקשה.
אם כבר פרסתם את ה-webhook בפלטפורמה לאירוח באינטרנט, תוכלו לדלג כדי לחבר את ה-webhook לפעולה שלכם. שימו לב שהשלבים הסופיים בתהליך שלמטה משתנים בהתאם לשימוש ב-Dialogflow או ב-Actions SDK.
פריסה ב-Cloud Functions for Firebase
- מורידים ומתקינים את Node.js.
מגדירים ומפעילים את ה-CLI של Firebase. אם הפקודה הבאה נכשלת עם השגיאה
EACCES
, יכול להיות שתצטרכו לשנות את ההרשאות ל-npm.npm install -g firebase-tools
מאמתים את כלי Firebase באמצעות חשבון Google:
firebase login
עוברים לספרייה של פרויקט הפעולה ומפעילים את Firebase. תתבקשו לבחור אילו תכונות של ה-CLI של Firebase תרצו להגדיר לפרויקט Actions. בוחרים את
Functions
ותכונות אחרות שאולי רוצים להשתמש בהן, כמו Firestore, ומקישים על Enter כדי לאשר ולהמשיך:cd <cloud_function_dir> firebase init
משייכים את הכלי Firebase לפרויקט הפעולות על ידי בחירה בו באמצעות מקשי החיצים:
. אחרי שבוחרים את הפרויקט, הכלי של Firebase מתחיל את הגדרת הפונקציות ושואל אתכם באיזו שפה להשתמש. בחרו באמצעות מקשי החצים ומקישים על Enter כדי להמשיך.
=== 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בוחרים אם להשתמש ב-ESLint כדי לאתר באגים אפשריים ולאכוף הקלדת סגנון
Y
אוN
:? Do you want to use ESLint to catch probable bugs and enforce style? (Y/n)
כדי לקבל את יחסי התלות של הפרויקט, מקלידים
Y
בהנחיה:? Do you want to install dependencies with npm now? (Y/n)
לאחר השלמת ההגדרה, יוצג פלט הדומה לפלט הבא:
✔ Firebase initialization complete!
מתקינים את התלות actions-on-google:
cd <cloud_function_dir>/functions npm install actions-on-google
משיגים את יחסי תלות של מילוי הבקשה ופורסים את הפונקציה של מילוי הבקשה:
npm install firebase deploy --only functions
הפריסה נמשכת כמה דקות. אחרי שתסיימו, תראו פלט דומה לזה הבא. כדי להזין את הכתובת ב-Dialogflow, אתם צריכים את כתובת ה-URL של הפונקציה.
✔ 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 לפעולה
אם משתמשים ב-Dialogflow: במסוף של Dialogflow, נכנסים לקטע Fulfillment, מעבירים את הלחצן Webhook למצב מופעל ומחליפים את כתובת ה-URL שבשדה URL ב-Function URL.
אם משתמשים ב-Actions SDK: צריך ליצור אובייקט בתוך האובייקט conversations
כדי להצהיר על מילוי הבקשה בחבילת הפעולות:
{ "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" }