Custom Response with Fulfillment for Dialogflow

NottDev
3 min readMay 31, 2019

--

บทความนี้จะแนะนำเกี่ยวกับการ Custom Response สำหรับใช้กับ Dialogflow ในส่วนของ Fulfillment

โดยส่วนใหญ่เหตุผลที่จะใช้ประโยนช์ส่วนของ Fulfillment มีประมาณนี้ครับ

  • เพื่อสร้างการตอบสนองแบบไดนามิกตามข้อมูลที่ค้นหาจากฐานข้อมูล (Database)
  • เพื่อวางคำสั่งซื้อผลิตภัณฑ์ ตามที่ลูกค้าต้องการ (Orders)
  • เพื่อใช้กฎและเงื่อนไขการชนะ สำหรับเกม (Game)

สำหรับการ Custom Response เพื่อใช้กับฟีเจอร์ Fulfillment ก็สามารถทำเองได้ง่ายๆ 2 วิธีดังนี้

  1. ใช้ Cloud function for firebase
  2. สร้าง Webhook ด้วย Node.js

1. ใช้ Cloud function for firebase

แบบใช้ Cloud function for firebase สามารถแบ่งออกได้อีก 2 วิธี

  • Dialogflow Inline Editor (แนะนำ)
  • Firebase CLI

แบบที่ 1: Dialogflow Inline Editor (Recommended)

แบบนี้คือ เราทำการเขียน code เพิ่มเติมลงใน Editor ในหน้าเว็บได้เลย และสามารถกด Deploy ทันทีจากหน้าเว็บ วิธีนี้ค่อยข้างง่ายและสะดวก ถ้าไม่ชอบยุ่งยากแนะนำวิธีนี้ เรามาดูกันเลยดีกว่า ว่ามีวิธีการทำอย่างไรบ้าง ลุยยย++

  • เลือกเมนู Fulfillment แล้วก็ Enable Inline Editor
  • จากนั้นเราสามารถเขียนฟังก์ชั่นการทำงานหรือประมวลผลที่เราต้องการเพิ่มเติมเข้าไป เมื่อเสร็จก็ Deploy เป็นอันเรียร้อยจ้า+++ (รอระบบ deploy ประมาณ 2–3 นาที)

แบบที่ 2: Firebase CLI

  1. สร้าง Dialogflow Agent
  2. คัดลอก Source code ลงเครื่อง
$ git clone https://github.com/dialogflow/fulfillment-webhook-nodejs.git $ cd to the functions directory $ npm install

3. ติดตั้ง Firebase CLI

$ npm install -g firebase-tools

4. ล็อกอินข้าสู่ระบบด้วย Google Account

$ firebase login
Firebase CLI Login Successful

7. เพิ่ม project to the sample with $ firebase use <project ID>

  • In Dialogflow console under Settings ⚙ > General tab > copy Project ID.

8. Run firebase deploy --only functions:dialogflowFirebaseFulfillment

9. เมื่อ deploy เสร็จเรียบร้อยแล้ว ให้เข้าไปยังหน้า Firebase Console เลือกโปรเจค และจากนั้นคัดลอก Link URL ใต้คอลัมน์ ทริกเกอร์ (Events column)

รูปแบบตัวอย่าง Link URL:

https://us-central1-<PROJECTID>.cloudfunctions.net/<FUNCTIONNAME>

10. กลับมาที่หน้า Dialogflow Console แล้วนำ URL ที่คัดลอกมาจากขั้นตอนก่อนหน้า มาใส่ใน ช่อง URL* (ถ้า web service ของเรามีการตั้งค่า Basic Authen หรือ Headers ก็อย่าลืมใส่ด้วยน่ะ)

เสร็จแล้วก็กด Save เป็นอันเสร็จเรียบร้อย

สามารถติดตาม ตอนอื่นๆได้ที่

(ข้อมูลอาจมีข้อผิดพลาด ถ้าจะเอาบทความนี้ไปอ้างอิงที่อื่นให้ตรวจสอบให้ดีก่อนนะครับ ขอบคุณครับ)

สำหรับวันนี้ ต้องขอลาไปก่อน สวัสดีครับ NottDev :)

--

--

NottDev
NottDev

Written by NottDev

Your only limit is your mind.

No responses yet