สร้าง Python Line Chatbot ด้วย Messages ตอบกลับรูปแบบต่าง ๆ

สร้าง Python Line Chatbot และรูปแบบการตอบกลับของข้อความ (Message) รูปแบบต่าง ๆ รวมไปถึงการเชื่อมต่อ Line กับ DialogFlow เพื่อใช้งานร่วมกัน

สร้าง Python Line Chatbot ด้วย Messages ตอบกลับรูปแบบต่าง ๆ

สำหรับบทความนี้เราจะมาเรียนรู้กันเกี่ยวกับ Messages ของ Line Chatbot ด้วยภาษาไพธอน ในการตอบกลับให้กับผู้ติดต่อซึ่ง Message ที่ Line Chatbot นั้นสามารถตอบกลับได้หลากหลายรูปเเบบซึ่งบาง Message นั้นมีเพียง Line Chatbot เท่านั้นที่สามารถตอบในรูปแบบนี้ได้ ในบทความนี้เราจะมาสอนวิธีการที่จะทำให้ Chatbot ตอบกลับไปยังผู้ติดต่อในรูปแบบต่าง ๆ

จุดประสงค์

  1. เข้าใจเกี่ยวกับ Message ของ Line Chatbot ที่ตอบกลับ
  2. รู้จัก Message ในรูปแบบต่างของ Line Chatbot
  3. สามารถใช้งาน Message ที่ต้องการร่วมกับ Line Chatbot ด้วยภาษา Python

ชนิดของ Message ของ Chatbot

มาทำความรู้จักและวิธีใช้ Message กัน

ก่อนอื่นเลย Chatbot จะต้องใช้งานร่วมกับ Dialogflow เพราะใน Messages ต่าง ๆ ที่เราจะได้รู้จักกันในว่านี้จะถูกเขียนไว้ใน Dialogflow ซึ่งอยู่ในช่องของ Custom payload วิธีค้นหา Custom payload ให้เราเปิดตัว Chatbot ของเราใน Dialogflow ขึ้นมาก่อนจากให้ทำการสร้าง Intent ขึ้นในช่องของ Custom payload จะอยู่ในส่วนของ Responses ซึ่งในช่องของ Responses จะมี TextResponses มาให้เราเเล้วในส่วนของ Default ให้เราทำการปิดทิ้ง เเละกดไปที่ AddResponses จากนั้นเลือกที่ Custom payload จากนั้นจะมีช่องของ Custom payload เด้งขึ้นมาก็ให้เราสามารถเขียนโค้ด ตามเเบบที่ต้องการลงไปได้เลย เเละโค้ด Message ต่างๆจะอยู่ในรูปแบบ Json ในกรณีที่เราเลือก Default จะมี 2 แบบคือ Custom payload, Text****Responses เเต่หากว่าเราเลือกเป็น Line ไว้เมื่อกดจะมีทั้งหมด 5 แบบคือ Text Response, Image, Card, Quick Replies, Custom Payload

Dialogflow (Photo by: Dialogflow Documentation)

ส่วนของ Default

ส่วนของ Line

Chatbot ที่ผมสร้างขึ้นนั้นมีชื่อว่า BotTest ซึ่งในการเเสดงเเต่ละ Message นั้นผมได้กำหนดไว้หมดเเล้ว Message ผมมี 1-7 เรียงตามชนิด Message ข้างต้น

Message 1: ข้อความแบบปกติ (Text Message)

โค้ดที่ใช้สำหรับ Message 1

{
  "line": {
    "text": "ข้อความที่ต้องการ",
    "type": "text"
  }
}

- type : กำหนดประเภทของการตอบกลับของ Chatbot แบบ T****ext

Message 2: ข้อความแบบสติ๊กเกอร์ (Sticker Message)

โค้ดที่ใช้สำหรับ Message 2

{
  "line": {
    "stickerId": "52002735",
    "type": "sticker",
    "packageId": "11537"
  }
}

Message 3: ข้อความแบบรูปภาพ (Image Message)

โค้ดที่ใช้สำหรับ Message 3

{
  "line": {
    "previewImageUrl": "ลิ้งค์ภาพ",
    "originalContentUrl": "ลิ้งค์ภาพ",
    "type": "image"
  }
}

Message 4: ข้อความแบบเสียง (Audio Message)

โค้ดที่ใช้สำหรับ Message 4

{
  "line": {
    "duration": 10000,
    "type": "audio",
    "originalContentUrl": "ลิ้งค์เสียง"
  }
}

Message 5: ข้อความแบบวิดีโอ (Video Message)

โค้ดที่ใช้สำหรับ Message 5

{
  "line": {
    "type": "video",
    "originalContentUrl": "ลิ้งค์วีดีโอ",
    "previewImageUrl": "ลิ้งค์ภาพ"
  }
}

Message 6: ข้อความแบบระบุสถานที่ (Location Message)

โค้ดที่ใช้สำหรับ Message 6

{
  "line": {
    "address": "2194 ถนน เจริญกรุง แขวง วัดพระยาไกร เขตบางคอแหลม กรุงเทพมหานคร 101200",
    "title": "เอเชียทีค เดอะ ริเวอร์ฟร้อนท์",
    "latitude": 13.704435,
    "type": "location",
    "longitude": 100.503212
  }
}

Message 7: ข้อความแบบเทมเพลต (Template Message)

โค้ดที่ใช้สำหรับ Message 7

{
  "line": {
    "altText": "This is a buttons template",
    "type": "template",
    "template": {
      "text": "STACKPYTHON",
      "imageBackgroundColor": "#FFFFFF",
      "thumbnailImageUrl": "https://stackpython.co/media/course/%E0%B9%80%E0%B8%A3%E0%B8%A2%E0%B8%99-django-course.jpg",
      "defaultAction": {
        "type": "uri",
        "uri": "https://stackpython.co/course/python-web-development-with-django",
        "label": "View detail"
      },
      "imageSize": "cover",
      "title": "Python Web Development with Django",
      "imageAspectRatio": "rectangle",
      "actions": [
        {
          "type": "uri",
          "uri": "https://stackpython.co/course/python-web-development-with-django",
          "label": "สั่งคอร์ส"
        }
      ],
      "type": "buttons"
    }
  }
}

ตัวอย่างการสมัคร DialogFlow พร้อมใส่ Message ให้ Chatbot ตอบกลับไปยังผู้ติดต่อ

ก่อนอื่นให้การ สมัครใช้งาน DialogFlowhttps://dialogflow.cloud.google.com/จากนั้นให้ทำการ Login เข้าใช้งาน

กดเลือกที่ Create Agent เพื่อเป็นการสร้าง Chatbot ขึ้นมา เลือกตรง DEFAULT LANGUAGE เป็น Thai-th และ DEFAULT TIME ZONE ให้เลือกเป็น (GMT+7:00) Asia/Bangkok ตามด้วยชื่อที่เราต้องการลงในช่อง GOOGLE PROJECT แล้วกดที่ CREATE เพื่อเริ่มสร้างได้เลย

เมื่อสร้างมาแล้วในตัว Dialogflow จะสร้าง Intent มาให้เราแล้ว 2 อันนั้นคือ นั้นคือ Default Fallback Intent และ Default Welcome Intent ให้เราสร้าง Intent ขึ้นมาเพิ่มด้วยการกดที่ CREATE INTENT จากนั้นให้เราทำการตั้งชื่อ Intent นั้นด้วยการกรอกที่ช่องบนสุด “Intent name” จากนั้นให้เลื่อนลงมาดูที่ Training phrases แล้วกด ADD TRAINING PHRASES จากนั้นจะมีช่องข้อความเด้งขึ้นมาให้กรอกซึ่งตรงที่จะเป็นการกำหนดกลุ่มคำถามที่เราต้องการ เช่น หากเรากรอกคำว่า “หิว” เข้าไป เมื่อผู้ติดติดพิมพ์ คำว่าหิวเข้ามา Intent นี้ก็จะถูกทำงาน ซึ่งตรงนี้ผมจะลองทำตัวอย่าง Message 6 : ข้อความแบบระบุสถานที่ (Location Message) โดยกลุ่มคำถามผมจะใช้เป็นคำว่า “แผนที่” เมื่อกำหนดเสร็จแล้วให้เราเลื่อนต่อไปยัง Responses จากนั้นกด ADD RESPONSE เพื่อสร้างข้อความตอบกลับ ให้ดูเลือก DEFAULT จะมี Text Responses สร้างมาไว้ให้เราอยู่แล้วแต่ครั้งนี้เราไม่ได้ใช้งาน Text Responses ให้ทำการลบออกไปได้เลยด้วยการคิดที่ Icon ถังขยะแล้วกด ADD RESPONSES เลือก Custom Payload จากนั้นคัดลอกโค้ด Message 6 มาวางไว้ได้เลย แล้วกดที่ SAVE ปุ่มสีฟ้าด้านบน

นำ DialogFlow มาเชื่อมต่อกับ Line

เริ่มจากการเข้าใช้งาน โดยสมัครใช้งาน Line Business ID ทำการ Login ด้วย Line จากนั้นให้ Create Provider ขึ้นมาเลือกที่ Create a Message API channel

จากนั้นทำการใส่รายละเอียดที่ต้องการลงไปซึ่งเมื่อเสร็จเเล้วเราก็จะได้ Line Bot มาหนึ่งตัว

ให้เราเปิดเข้าไปที่ Integrations ใน DialogFlow จากนั้นเลื่อนลงมาและไปเลือกที่ Line จากนั้นกรอกรายละเอียดโดยดูจาก Line Developer ด้านบน

เมื่อกรอกเสร็จให้กดที่ START เพื่อเป็นการเริ่มใช้งานทั้งนี้หากไม่เข้าใจในส่วนไหนสามารถดูได้ในลิ้งค์ด้านล่างเลยครับ

ลิ้งค์วิดีโอที่เกี่ยวข้อง

ซีรีย์ Python Chatbot :

สอน Python Chatbot Ep.1 - ทำความรู้จักกับ Chatbot

สอน Python Chatbot Ep.2 - สมัครใช้งาน Line Developer

สอน Python Chatbot Ep.3 – ใช้งาน DialogFlow

สอน Python Chatbot Ep.4 – Flask

สอน Python Chatbot Ep.5 - Database, Firebase, Google Sheet

หรือสามารถดูได้เป็น List ซีรีย์ Python Line Chatbot

ทางเรา STACKPYTHON คาดหวังว่าทุกคนที่อ่านบทความนี้จบ จะสามารถสร้าง Line Chatbot ด้วย Messages รูปแบบต่าง ๆ ในเบื้องต้นกันได้ครับ และสามารถศึกษาและรับชมได้เพิ่มเติมในช่องยูทูปของ STACKPYTHON กับซีรีย์ สร้าง Line Chatbot ด้วยภาษา Python


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

Nu STACKPYTHON

Follow us on

Medium: STACKPYTHON

Youtube: STACKPYTHON

Facebook: STACKPYTHON

| Like | Comment | Share | >> STACKPYTHON

📒Python Line Chatbot full course 2021