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

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

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

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

    เมื่อตั้งค่าเสร็จแล้ว คุณจะเห็นผลลัพธ์ที่คล้ายกับข้อความต่อไปนี้

    ✔  Firebase initialization complete!
  9. ติดตั้งทรัพยากร Dependency actions-on-google โดยทำดังนี้

    cd <cloud_function_dir>/functions
    npm install actions-on-google
    
  10. รับทรัพยากร Dependency ของ Fulfillment และจะทำให้ฟังก์ชัน Fulfillment ใช้งานได้ด้วยคำสั่งต่อไปนี้

    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

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

หากคุณใช้ Dialogflow: ใน คอนโซล Dialogflow ไปที่ การดำเนินการคำสั่งซื้อ สลับปุ่มเว็บฮุคเป็นเปิดใช้ และแทนที่ URL ในช่อง 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"
}