מילוי בקשה לפריסה (Dialogflow)

אחרי שיוצרים את מילוי ההזמנות ב-webhook, פורסים אותו בסביבת הייצור ומקשרים אותו אותו לפעולה. השלבים הבאים מראים איך מגדירים את הסביבה לפרוס ב-Cloud Functions for Firebase לצורכי אירוח בסביבת ייצור. אבל, לפעמים אפשר לבחור כל פלטפורמת אירוח באינטרנט שתומכת בבקשות HTTPS לאירוח מילוי ההזמנות.

אם כבר פרסתם את התגובה לפעולה מאתר אחר (webhook) בפלטפורמת אירוח באינטרנט, אפשר מדלגים לקטע קישור התגובה לפעולה מאתר אחר (webhook) לפעולה. שימו לב שהשלב הסופי השלבים בתהליך הבאים משתנים בהתאם לאפליקציה שבה משתמשים - Dialogflow או Dialogflow SDK של פעולות.

פריסה ב-Cloud Functions for Firebase

  1. מורידים ומתקינים את Node.js.
  2. מגדירים ומפעילים את ה-CLI של Firebase. אם הפקודה הבאה נכשלת עם שגיאת EACCES, יכול להיות שיהיה צורך לשינוי ההרשאות של NPM.

    npm install -g firebase-tools
    
  3. מאמתים את כלי Firebase עם חשבון Google:

    firebase login
    
  4. עוברים לספריית הפרויקט של הפעולה ומפעילים את Firebase. תהיה לך אפשרות בקשה לבחור אילו תכונות של Firebase CLI להגדיר פרויקט פעולות. בוחרים את Functions ותכונות אחרות שאולי רוצים להשתמש בהן, כמו Firestore, ואז מקישים על Enter כדי לאשר ולהמשיך:

    cd <cloud_function_dir>
    firebase init
    
  5. משייכים את כלי Firebase לפרויקט Actions (פעולות) על ידי בחירה בו באמצעות מקשי החיצים כדי לנווט ברשימת הפרויקטים:

  6. אחרי שבוחרים את הפרויקט, הכלי של 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
  7. צריך לבחור אם להשתמש ב-ESLint כדי לזהות באגים אפשריים ולאכוף את הסגנון מקלידים Y או N:

    ? Do you want to use ESLint to catch probable bugs and enforce style? (Y/n)
  8. כדי לקבל את יחסי התלות של הפרויקט, מקלידים Y בהנחיה:

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

    לאחר השלמת ההגדרה, יתקבל פלט שדומה לזה:

    ✔  Firebase initialization complete!
  9. מתקינים את התלות actions-on-google:

    cd <cloud_function_dir>/functions
    npm install actions-on-google
    
  10. מקבלים את יחסי התלות של מילוי ההזמנות ופורסים את פונקציית המילוי:

    npm install
    firebase deploy --only functions
    

    הפריסה נמשכת כמה דקות. בסיום התהליך יוצג פלט כמו שמפורט בהמשך. כדי להזין, נדרשת כתובת ה-URL של הפונקציה. 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 לפעולה

אם משתמשים ב-Dialogflow: מסוף Dialogflow, יש להיכנס אל מילוי, מעבירים את המתג של תגובה לפעולה מאתר אחר (webhook) למצב מופעל ומחליפים אותו את כתובת ה-URL בשדה URL עם Function URL (כתובת ה-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"
}