LINE bot (LINE Chatbot)
สำหรับบทความนี้ต่อเนื่องมาจาก บทความก่อนหน้า ที่เล่าถึง LINE API ซึ่งหลังจากเราทราบกระบวนการทำงานระหว่าง LINE Client – Server แล้วทีนี้เราลองมาทำ LINE Robot หรือ Chat Bot มาลองเล่นกันดูครับ โดย code นี้ถูกเก็บใน Git บน GitHub ซึ่งสามารถเข้าไป download กันได้ free ครับ
Requirement (refer: https://github.com/Saixiii/LINE-API)
1. Python2.7
2. Apache thrift
$ # Install your choice of java $ sudo apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libboost-system-dev libboost-filesystem-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev $ cd /tmp $ curl http://archive.apache.org/dist/thrift/0.9.1/thrift-0.9.1.tar.gz | tar zx $ cd thrift-0.9.1/ $ ./configure $ make $ sudo make install $ thrift --help
3. Python Line lib
$ pip install line or $ easy_install line
*** หมายเหตุ python lib ดังกล่าวอาจมี bug อันเนื่องมาจาก ทาง LINE มีการออกจดหมายเตือนเรื่องลิขสิทธิ์ แนะนำให้ download zip file จาก https://github.com/Saixiii/LINE-API
$ python setup.py install
หลังจาก install environment เรียบร้อยแล้ว ก็ถึงเวลาลุยทำ chatbot ครับ
1. Login and Pin authentication
>>> from line import LineClient >>> client = LineClient("username@gmail.com", "xxxxxxxxxx") Enter PinCode '7390' to your mobile phone in 2 minutes >>> client = LineClient("username", "xxxxxxxxxx") Enter PinCode '9779' to your mobile phone in 2 minutes
2. Profile and Contacts
# List profile >> profile = client.profile >> print profile <LineContact Test>
# Send message >>> friend = client.contacts[0] >>> friend.sendMessage("hello world!") True
# Send image >>> friend.sendImage("./image.jpg") # use your path for image to send True
# Send url image >>> friend.sendImageWithURL("https://saixiii.com/u/3346407?v=3&s=460") True
# Send sticker >>> friend.sendSticker() # send a default sticker True >>> friend.sendSticker(stickerId="13",stickerPackageId="1",stickerVersion="100") True
# Fetch incoming messages >>> messages = friend.getRecentMessages(count=10) >>> print messages [LineMessage (contentType=NONE, sender=None, receiver=<LineContact Test>, msg="hello World!")]
3. Rooms and Groups
# List group/room name >>> print client.groups [<LineGroup Test-B #4>, <LineGroup Test-A #1 (invited)>] >>> print client.rooms <LineRoom [<LineContact room1>]>, <LineRoom [<LineContact room2>, <LineContact room3>]>]
# Accept invitation >>> group = client.groups[1] >>> group.acceptGroupInvitation() True
# Fetch incoming messages >>> messages = client.contacts[0].getRecentMessages(count=10) >>> messages = client.groups[0].getRecentMessages(count=15)
# Get group ID by name >>> group = client.getGroupByName('GROUP_NAME') >>> contact = client.getContactByName('CONTACT_NAME')
4. Echo bot
หลักจากเทส command เสร็จแล้วลองมาสร้าง chat bot แบบง่ายสุดคือ Echo bot ซึ่งก็คือ ถามคำอะไรไปมันก็ตอบคำนั้นกับ ซึงเราจะอาศัย function longPoll() ทำหน้าที่ fetch incoming messages ที่เข้ามาหา bot จากนั้นก็ใช้ function sendMessage(sender,msg) ตอบกลับไป สุดท้ายอาศัย while loop ให้กลับไป fetch meesages วนไปแบบนี้ตลอด
from line import LineClient, LineGroup, LineContact try: client = LineClient("ID", "PASSWORD") #client = LineClient(authToken="AUTHTOKEN") except: print "Login Failed" while True: op_list = [] for op in client.longPoll(): op_list.append(op) for op in op_list: sender = op[0] receiver = op[1] message = op[2] msg = message.text receiver.sendMessage("[%s] %s" % (sender.name, msg))
สำหรับผู้ที่สนใจ LINE Bot แบบ Official สามารถอ่านต่อได้จากบทความนี้ครับ
บทที่1 ทำ LINE Bot สามารถโต้ตอบ หรือ Chatbot ด้วย Python (Official)
Reference:
- ทำความเข้าใจ LINE API (Unofficial) – Messaging API
- ทำ LINE bot (Unofficial) สามารถโต้ตอบแบบ Chatbot หรือ Echobot
- วิธีสมัคร LINE Business Center และ LINE@
- บทที่1 ทำ LINE Bot สามารถโต้ตอบ หรือ Chatbot ด้วย Python (Official)
- บทที่2 เรียนรู้ LINE API คืออะไร ทำ LINE Bot ผ่าน LINE Messaging API (Official)
- บทที่3 วิธีใช้ LINE API (Messaging API) เพื่อทำ LINE Bot
- บทที่4 Webhook หลักการของ LINE API ที่เอาไว้ ทำ LINE Bot
- บทที่5 วิธีส่งข้อความผ่าน LINE API หรือ LINE Bot ด้วย Curl
Author: Suphakit Annoppornchai
Credit: https://saixiii.com
[…] เราไป hack API เค้ามาใช้ (สร้าง LINE Bot Unofficial) จึงจะเป็นต้องใช้ ID Line@ account […]
[…] ทำ LINE bot (Unofficial) สามารถโต้ตอบแบบ Chatbot หรือ Echo… […]
[…] เราไป hack API เค้ามาใช้ (สร้าง LINE Bot Unofficial) จึงจะเป็นต้องใช้ ID Line@ account […]
[…] ทำ LINE bot (Unofficial) สามารถโต้ตอบแบบ Chatbot หรือ Echo… […]
[…] ทำ LINE bot (Unofficial) สามารถโต้ตอบแบบ Chatbot หรือ Echo… […]
[…] ทำ LINE bot (Unofficial) สามารถโต้ตอบแบบ Chatbot หรือ Echo… […]
[…] ต่อไปเป็นวิธีการ ทำ LINE bot แบบ Unofficial สามารถโต้ตอบแบบ Charbot […]
[…] ทำ LINE bot (Unofficial) สามารถโต้ตอบแบบ Chatbot หรือ Echo… […]
ตอนนี้เข้าไม่ได้ครับ