python line

https://kriengten.zyrosite.com/ krieng3

Line Developer -> คลิก

Heroku account -> คลิก

sudo snap install --classic heroku

project Firebase ที่ Firebase console

$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1 $ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2

$ sudo update-alternatives --config python3

if found ModuleNotFoundError: No module named 'pip._internal.cli'

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3 get-pip.py --force-reinstall

heroku login -i

heroku logs --tail

heroku buildpacks:set heroku/python

for ngrok hook in line

https://b1876f2af6ce.ngrok.io/webhook

https://dialogflow.cloud.google.com/v1/integrations/line/webhook/2845aa9f-fb24-4b07-acb7-b1cea42d1080

    • git init

    • heroku git:remote -a botnoiengine (ชื่อของ app เรา)

    • git add .

    • git commit -am “first commit”

    • git push heroku master

python3 -r requirement.txt

dialog flow kriengten2

ngrok kriengten2

firebase kriengten3

twilio k3 kk6

ทำgraph

Line API กับเขียน Python ใช้ Flask รับค่าจาก API ดีง ผู้ป่วยcovid

https://medium.com/@chanisarauttamawetin/%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87%E0%B8%9A%E0%B8%AD%E0%B8%97%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%80%E0%B8%82%E0%B8%B5%E0%B8%A2%E0%B8%99-python-%E0%B9%83%E0%B8%8A%E0%B9%89-flask-%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B8%84%E0%B9%88%E0%B8%B2%E0%B8%88%E0%B8%B2%E0%B8%81-api-%E0%B9%80%E0%B8%8A%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B8%A1%E0%B8%95%E0%B9%88%E0%B8%AD%E0%B8%81%E0%B8%B1%E0%B8%9A-line-api-a4e652a7506a

line bot ดึงราคาทองคำ

https://medium.com/linedevth/%E0%B8%A3%E0%B8%B2%E0%B8%A2%E0%B8%87%E0%B8%B2%E0%B8%99%E0%B8%A3%E0%B8%B2%E0%B8%84%E0%B8%B2%E0%B8%97%E0%B8%AD%E0%B8%87%E0%B8%9C%E0%B9%88%E0%B8%B2%E0%B8%99-line-chatbot-%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B8%AD%E0%B8%B1%E0%B8%95%E0%B9%82%E0%B8%99%E0%B8%A1%E0%B8%B1%E0%B8%95%E0%B8%B4-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2%E0%B9%80%E0%B8%97%E0%B8%84%E0%B8%99%E0%B8%B4%E0%B8%84-web-scraping-33fe40c2711c

Line chatbot จำแนก intent จากข้อความ ไม่ต้องพึ่ง Dialogflow

https://medium.com/@witchapongdaroontham/%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-line-chatbot-%E0%B8%88%E0%B8%B3%E0%B9%81%E0%B8%99%E0%B8%81-intent-%E0%B8%88%E0%B8%B2%E0%B8%81%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1-%E0%B9%84%E0%B8%A1%E0%B9%88%E0%B8%95%E0%B9%89%E0%B8%AD%E0%B8%87%E0%B8%9E%E0%B8%B6%E0%B9%88%E0%B8%87-dialogflow-1c1a98cb81cf

https://saixiii.com/chapter6-line-python-sdk/

Line liff

https://github.com/linedevth/liff-paint-something

https://blog.ruanbekker.com/blog/2017/12/14/graphing-pretty-charts-with-python-flask-and-chartjs/

    • 127.0.0.1:8080/line

    • /bar

    • /pie

Firebase Realtime Database ด้วย ReactJs

https://monkeywebstudio.com/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99-firebase-realtime-database-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-reactjs/

Firebase Authentication ด้วย React JS

https://monkeywebstudio.com/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99-firebase-authentication-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-react-js/

Cloud Functions for Firebase ตั้งแต่ Zero จนเป็น Hero

https://medium.com/firebasethailand/%E0%B8%A3%E0%B8%B9%E0%B9%89%E0%B8%88%E0%B8%B1%E0%B8%81-cloud-functions-for-firebase-%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87%E0%B9%81%E0%B8%95%E0%B9%88-zero-%E0%B8%88%E0%B8%99%E0%B9%80%E0%B8%9B%E0%B9%87%E0%B8%99-hero-1c94acbb55af

สร้าง Cron Job ด้วย Cloud Functions for Firebase

https://medium.com/firebasethailand/%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-cron-job-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-cloud-functions-for-firebase-%E0%B8%87%E0%B9%88%E0%B8%B2%E0%B8%A2%E0%B8%99%E0%B8%B4%E0%B8%94%E0%B9%80%E0%B8%94%E0%B8%B5%E0%B8%A2%E0%B8%A7-fe8cb64cec52

https://gist.github.com/jirawatee?page=2 รวม firebase line code

Line bot connect to google sheet

https://adamblog.co/line-bot-integrate-with-google-sheet/

python สภาพอากาศ

https://adamblog.co/aqi-line-bot/ AQI line bot รายงานสภาพอากาศ https://www.iqair.com/th/ kriengten3

https://python3.wannaphong.com/2020/03/python.html สภาพอากาศ จาก 3 แหล่ง

https://www.hostpacific.com/how-to-install-nrok-on-localhost/

สร้าง Line chatbot จำแนก intent จากข้อความ ไม่ต้องพึ่ง Dialogflow

https://medium.com/@witchapongdaroontham/%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-line-chatbot-%E0%B8%88%E0%B8%B3%E0%B9%81%E0%B8%99%E0%B8%81-intent-%E0%B8%88%E0%B8%B2%E0%B8%81%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1-%E0%B9%84%E0%B8%A1%E0%B9%88%E0%B8%95%E0%B9%89%E0%B8%AD%E0%B8%87%E0%B8%9E%E0%B8%B6%E0%B9%88%E0%B8%87-dialogflow-1c1a98cb81cf

สร้าง Line Chatbot ด้วย Dialogflow, Python, และ Firebase

https://medium.com/datawiz-th/%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-line-chatbot-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-dialogflow-python-%E0%B9%81%E0%B8%A5%E0%B8%B0-firebase-%E0%B8%87%E0%B9%88%E0%B8%B2%E0%B8%A2%E0%B8%A1%E0%B8%B2%E0%B8%81%E0%B9%86-c4631c041848

https://medium.com/linedevth/%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-line-chatbot-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2-python-84750b353fba

ในการสร้างแชทบอทจะประกอบด้วย

A. Channel หรือช่องทางของแชทบอทที่ไว้สื่อสาร ในที่นี้ช่องทางสื่อสารคือแอพลิเคชั่น LINE ครับ

B. Bot Engine หรือ server ที่โต้ตอบกับข้อความที่เข้ามา สำหรับภาษาที่ใช้ในการเขียน Bot Engine คือภาษา Python และจะใช้ Heroku webserver

หลังจากนั้นเราต้องเชื่อมต่อ Channel กับ Bot Engine ผ่าน Webhook ครับ โดยเราจะเอา channel token ที่ได้จาก Channel ไปใส่ที่ Bot Engine server และเราก็จะเอา server url ไปใส่ที่ Channel

A. สร้าง LINE channel ด้วย Messaging API

    1. สมัคร Line Developer -> คลิก คนที่เพิ่งสมัครเป็นครั้งแรกจะให้กรอกรายละเอียดของตัวเองครับ

2. Create provider โดยให้กดปุ่ม Create a new provider ให้นึกถึงว่า provider เหมือนบริษัทของเรา เราอาจจะมีหลายบริษัท และแต่ละบริษัทก็อาจจะมีแชทบอทได้หลายตัว

ตั้งชื่อบริษัทของเรา

3. Create a Message API channel กดปุ่มนี้เพื่อสร้างแชทบอทครับ แล้วก็กรอกข้อมูลที่ require อัพโหลดรูปภาพของแชทบอทเรา ตั้งชื่อ Channel name ก็คือ ชื่อของแชทบอทเรา

4. หลังจากนั้น LINE ก็จะสร้าง แชทบอทให้เรา ให้กดตรง tab Messaging API แล้วก็ใช้โทรศัพท์เรา scan QR code ก็จะได้แชทบอทใน LINE ข้อความอัตโนมัติก็จะเด้งขึ้นมา แล้วถ้าทักอะไร ก็จะตอบประมาณว่า ขอบคุณที่ส่งข้อความเข้ามา แต่บอทยังตอบไม่ได้

5. สร้าง Channel access token

ด้านล่างสุดของ tab Messaging API จะมี หัวข้อ Channel access token อยู่ข้างล่างสุดเลย ก็ให้กดปุ่มสร้าง ก็จะได้ token ยาว ๆ ก็ save ใส่ editor ไว้ ซึ่งเราต้องเอาไปใช้ใส่ในฝั่ง Bot Engine

6. เลื่อนกลับไปข้างบนอีกนิด เพื่อปิดในส่วนของ Auto-reply เพราะเราไม่ต้องการให้แชทบอทตอบข้อความ default

7. ใส่ค่า webhook URL ซึ่งก็จะเป็นชื่อ Bot engine server ของเรา ของผมก็จะเป็น https://botnoiengine.herokuapp.com/webhook เดี๋ยวทุกคนก็จะได้ url ของตัวเองหลังจากที่สร้าง Bot engine ของตัวเองในขั้นตอนต่อไป

ก็จบในส่วนแรก ของการสร้าง channel หลังจากนั้นเราจะมาสร้าง Bot Engine กัน ด้วย ภาษา Python และ web server Heroku

B. Heroku webserver

    1. สมัคร account -> คลิก แล้วกด Sign UP แล้วกรอกข้อมูลให้ครบ ก็จะส่ง E-mail ให้เราตั้ง password

2. สร้าง app โดยกดปุ่ม Create a new app ตั้งชื่อ app แล้วก็เลือก region จะเป็นที่ USA หรือ Europe ก็ได้ ตั้งชื่อ app ของตัวเองนะครับ ของผมตั้งชื่อว่า botnoiengine

3. พอสร้างเสร็จแล้ว Heroku ก็จะสร้าง Git repo ให้เราเลย ก็สะดวกดี เราก็สามารถที่จะ push source code เราขึ้นไปบน server Heroku ได้ผ่าน Command Line แต่ว่าต้องติดตั้ง Heroku CLI ก่อนนะครับ ลองทำตามขั้นตอนดูครับไม่ยาก ไม่ได้ทำให้ดูเพราะ Windows, Mac, Linux จะไม่เหมือนกัน สิ่งที่ต้องระวัง คือให้ดูคือการ set path ให้สามารถเรียก heroku ได้จาก command line

4. เตรียม source code ที่เป็นภาษา Python แล้วก็ รันคำสั่งดังกล่าว

ผมได้เตรียมไว้ให้สามารถดาวน์โหลดได้จากที่นี่ -> คลิก ซึ่งจะประกอบด้วย ไฟล์ ทั้งหมด 4 ไฟล์​ ด้วยกัน ก็สร้าง folder ตามชื่อของ app heroku ที่ได้ตั้งไว้ และหย่อนไฟล์ทั้ง 4 ไว้ใน folder

อธิบายในส่วนของ code สักหน่อย ทุก event ที่สร้างขึ้นจากการที่คนคุยกับแชทบอทใน LINE ก็จะเข้ามาในฟังก์ชั่น callback() จากที่เราตั้งค่า webhook ไว้ที่ https://botnoiengine.herokuapp.com/webhook code ส่วนนี้จะรับ event แล้วส่งต่อไปยังฟังก์ชั่น event_handle

ในส่วนของ event_handle ก็จะสกัด element ต่าง ๆ ใน event ซึ่งอยู่ในรูปแบบของ json เช่น replytoken message type แล้วหลังจากนั้นเราก็จะสร้างคำตอบ ซึ่งอาจจะสร้างเป็น text หรือ sticker แล้วก็ตอบกลับ ด้วย line_bot_api.reply_message

ใน code ส่วนนี้ จะเห็นได้ว่า ข้อความที่สกัดเข้ามา ก็จะส่งกลับไปด้วยข้อความเดิม หากข้อความ msgType ไม่ใช่ “text” ก็จะ random เลือก sticker และส่ง sticker กลับไป

5. เอา channel secret token ที่ได้ตอนสร้าง channel กลับไปบน ๆ A.5. แล้วมาก๊อปแปะในบรรทัดที่ 19 ของ code app.py

6. หลังจากนั้นก็ save แล้วก็รัน

    • git init

    • heroku git:remote -a botnoiengine (ชื่อของ app เรา)

    • git add.

    • git commit -am “first commit”

    • git push heroku master

7. กลับไปเชคอีกรอบ ว่าเราได้ใส่ url ของ heroku ถูกมั้ย ใน A.7.

https://botnoiengine.herokuapp.com/webhook