ทำให้ Fulfillment ใช้งานได้ (Dialogflow)

เมื่อสร้าง Fulfillment เว็บฮุคแล้ว ให้ทำให้ใช้งานได้เป็นเวอร์ชันที่ใช้งานจริงและเชื่อมต่อกับการดำเนินการของคุณ ขั้นตอนต่อไปนี้จะแสดงวิธีตั้งค่าสภาพแวดล้อมเพื่อทำให้ใช้งานได้ใน Cloud Functions for Firebase สำหรับโฮสติ้งที่ใช้งานจริง อย่างไรก็ตาม คุณเลือกแพลตฟอร์มเว็บโฮสติ้งที่รองรับคำขอ HTTPS และการตอบกลับเพื่อโฮสต์ Fulfillment ของคุณได้

หากติดตั้งใช้งานเว็บฮุคกับแพลตฟอร์มเว็บโฮสติ้งอยู่แล้ว ให้ข้ามไปที่เชื่อมต่อเว็บฮุคกับการดําเนินการ โปรดทราบว่าขั้นตอนสุดท้ายในขั้นตอนด้านล่างจะแตกต่างกันไป ขึ้นอยู่กับว่าคุณใช้ Dialogflow หรือ Actions SDK

ทำให้ใช้งานได้กับ Cloud Functions for Firebase

  1. ดาวน์โหลดและติดตั้ง Node.js
  2. ตั้งค่าและเริ่มต้น Firebase CLI หากคำสั่งต่อไปนี้ไม่สำเร็จโดยมีข้อผิดพลาด EACCES คุณอาจต้องเปลี่ยนสิทธิ์ npm

    npm install -g firebase-tools
    
  3. ตรวจสอบสิทธิ์เครื่องมือ Firebase ด้วยบัญชี Google

    firebase login
    
  4. ไปที่ไดเรกทอรีโปรเจ็กต์การดำเนินการแล้วเริ่มต้น Firebase ระบบจะขอให้คุณเลือกฟีเจอร์ Firebase CLI ที่ต้องการตั้งค่าสำหรับโปรเจ็กต์ Actions เลือก Functions และฟีเจอร์อื่นๆ ที่คุณอาจต้องการใช้ เช่น Firestore แล้วกด Enter เพื่อยืนยันและดำเนินการต่อ

    cd <cloud_function_dir>
    firebase init
    
  5. เชื่อมโยงเครื่องมือ Firebase กับโปรเจ็กต์การดำเนินการของคุณโดยเลือกเครื่องมือดังกล่าวโดยใช้ปุ่มลูกศรเพื่อไปยังรายการโปรเจ็กต์ ดังนี้

  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. รับทรัพยากร Dependency ของโปรเจ็กต์โดยพิมพ์ 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. รับทรัพยากร Dependency ของ Fulfillment และทำให้ฟังก์ชัน Fulfillment ใช้งานได้ด้วยคำสั่งต่อไปนี้

    npm install
    firebase deploy --only functions
    

    การทำให้ใช้งานได้จะใช้เวลา 2-3 นาที เมื่อเสร็จสิ้น คุณจะเห็นเอาต์พุต ที่คล้ายกับตัวอย่างต่อไปนี้ คุณจะต้องมี 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

เชื่อมต่อเว็บฮุคกับการดำเนินการของคุณ

หากคุณใช้ Dialogflow: ในคอนโซล Dialogflow ให้ไปที่Fulfillment สลับปุ่มเว็บฮุคเป็นเปิดใช้งาน แล้วแทนที่ URL ในช่อง URL ด้วย URL ของฟังก์ชัน

หากใช้ Actions SDK: ให้สร้างออบเจ็กต์ภายในออบเจ็กต์ conversations เพื่อประกาศ Fulfillment ในแพ็กเกจ 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"
}