2 ตุลาคม 2559

Published ตุลาคม 02, 2559 by with 1 comment

สร้าง LINE Bot ด้วย Python

สวัสดีผู้อ่านทุกท่านครับ บทความนี้ผมจะพาผู้อ่านไปสร้าง LINE Bot ด้วย Python กันครับ


หลังจากที่ผมเคยเขียนบทความ Python + Line api ไป ครบ 1 ปี ปัจจุบันนี้โมดูลนั้นไม่สามารถใช้งานได้แล้ว ผมขอประกาศยกเลิกการใช้งานบทความดังกล่าว

เมื่อวันที่ 29 กันยายนที่ผ่านมาทาง LINE ได้ประกาศเปิดตัว Messaging API (https://www.blognone.com/node/85927) ซึ่งใช่สำหรับการสร้าง Bot โต้ตอบกับผู้ใช้งาน และทาง LINE ได้ปล่อย SDK สำหรับภาษาต่าง ๆ ออกมา แต่ไม่มีภาษา Python



ผมได้ทำการศึกษา API และลองเขียน LINE Bot ด้วย Python แล้ว ทำตามบทความนี้เลยครับ

  • ก่อนอื่นเตรียม Host ที่รองรับการเชือมต่อ SSL ผ่าน Https พร้อมใบรับรองที่ถูกต้อง ผมเลือกใช้ heroku.com ในการ Host ไฟล์ Python
  • เข้าไปที่ business.line.me แล้วทำตามเอกสาร https://developers.line.me/messaging-api/getting-started
  • ลงมือเขียนโค้ด Python กันเลยครับ :P

#print("ข้อมูล:",data)
r = requests.post(LINE_API, headers=headers, data=data) # ส่งข้อมูล
#print(r.text)

if __name__ == '__main__':
app.run(debug=True)
[/python]

อธิบาย
หลักการทำงาน LINE Messaging API หลักการทำงาน LINE Messaging API[/caption]

เมื่อเราวางไฟล์บน Host แล้ว เมื่อผู้ใช้งานส่งข้อความมา LINE จะทำการยิงข้อมูล Webhook ไปที่ลิงค์ที่กำหนด โดยข้อมูลเป็นข้อมูล json มีรายละอียดดังนี้

ภายใน events ส่วน replyToken เป็นส่วนที่ใช้ติดต่อกับผู้ใช้ เราต้องใช้ replyToken ในการส่งและรับข้อความ
type คือ ชนิดข้อมูลที่ส่งมา
timestamp เวลา
source แหล่งที่มา จะบอกรายละเอียดของผผู้ใช้งานและชนิดของผู้ใช้
message บอกข้อมูลที่ส่งมา สำหรับผู้สร้าง LINE Bot สามารถนำข้อมูลส่วนนี้ไปใช้งานในการเขียนเงื่อนไขโต้ตอบได้

ส่วน ENTER_ACCESS_TOKEN เอามาจาก Channel Access Token ในหน้า LINE Developers

หลังจากที่วาง Webhook URL ต้องกด verify หากขึ้นสีเขียวถือว่าใช้งานได้ แต่หากขึ้นสีแดงต้องแก้ไขครับ

ผลลัพธ์

โค้ดที่ผมเขียนในบทความนี้ ไม่ว่าผู้ใช้งานจะส่งข้อความอะไร Bot จะทำการส่งข้อความ "งง" กลับมา

สร้าง LINE Bot ด้วย Python

นอกจากส่งข้อความแล้วยังสามารถส่งข้อความ รูปภาพ เสียง และอื่น ๆ ได้ครับ ลองอ่านเอกสารกันดูนะครับ
อ่านเอกสาร API ได้ที่ https://devdocs.line.me/en/

ลองศึกษา API แล้วนำไปเขียน LINE Bot ด้วยภาษา Python กันนะครับ :D

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

1 ความคิดเห็น:

แสดงความคิดเห็นได้ครับ :)