สอนทำ line bot ไว้ใช้เอง ง่ายๆ ไม่กี่ขั้นตอน
เนื่องจากบล็อกที่แล้วเรา ทำไลน์บอท แจ้งเตือน BTS/MRT เสีย (อ่ะ ขายอีกรอบซะหน่อย แสกน QR codeข้างล่าง เพื่อใช้งาน) บล็อกนี้เลยจะสอนทำ line bot ง่ายๆ ไว้ใช้เอง
เตรียมเครื่องไม้เครื่องมือ ซะหน่อย
- Heroku สร้างแอพไว้ให้เรียบร้อย
- Python3
- lineID
- รายการอาหาร
Step 1: สร้าง app ใน heroku
หลังจากสร้าง แอพแล้วก็ทำตาม ขั้นตอนใน Heroku เลย ในที่นี้เราตั้งชื่อแอพว่า easylinebot
heroku login
cd to-easy-line-bot-path/
git init
heroku git:remote -a easylinebot
สร้าง file ที่ชื่อว่า Procfile โดยมีโค้ดดังนี้
สร้างไฟล์ app.py
สร้างไฟล์ requirements.txt ใส่ตัวที่เรา install มาใช้ ในpython3 ในไฟล์app.py
จากนั้นให้ deploy
pip install flask
pip install gunicorn
git add .
git commit -am "make it better"
git push heroku master
จะได้แบบนี้
ไปที่ https://ชื่อapp.herokuapp.com/webhook
ถ้าแสดงแบบข้างล่างนี้ แสดงว่าคุณได้ไปต่อ เอ้ย เราก็ได้ webhookไว้ใช้งานแล้ว
Step 2: สร้าง line bot
ขั้นตอนต่อไป สร้าง line bot ไปที่ https://developers.line.biz/en/
- Login ด้วย Account ของตัวเอง
- เลือก Create
- ตั้งชื่อ
- กด Create
- เลือก Create a Messaging API channel
- กรอกข้อมูลให้ครบ
- กด Create
- กด ยอมรับ แล้วจะได้หน้าตาแบบข้างล่าง
- เลือก Messaging API
- ใส่ Webhook URL
- กด Verify
- กด issuse ที่ Channel access token ข้างล่าง
อย่าลืมแอดไลน์ไว้ด้วยน้า ไม่งั้นเราจะไม่มีตัวไลน์บอทในเครื่องนะ
Step 3: ใส่ channel secret และ channel token
กลับไปที่ app.py ของเรากันค่ะ
channel_secret = ไปที่ Basic Setting ที่ไลน์บอท ใน https://developers.line.biz/en/
channel_access_token = ไปที่ Messaging API ที่ไลน์บอท ใน https://developers.line.biz/en/
food_list = ใส่รายการอาหาร เช่น [‘ไข่ดาว’, ‘ไข่เจียว’]
Step 4: แก้ไข webhook และ เพิ่ม auto reply
แก้ตรง def webhook(): ให้เป็นแบบข้างล่าง
ส่วนนี้คือทำตัว auto reply นั่นเอง
ทุกๆครั้งที่เรารับ message จะทำการไปแบ่งคำ แล้วหาคำที่เข้าข่าย ‘กิน’ ‘อาหาร’ ‘อะไร’ จะทำการสุ่มรายการอาหาร แล้ว reply คืนมา นั่นเอง ถ้านอกเหนือจากนั้น ให้ reply ‘ต้องการสุ่มอาหารหรือเปล่า หากต้องการสุ่ม พิมพ์ กินอะไรดี’
Step 5: Deploy
จากนั้น commit แล้ว deploy เลยยยยยย
git add .
git commit -am "make it better"
git push heroku master