📑[Note]Flask & Line Messaging API

Nonpavit Detbun 🔋🍺
3 min readMar 1, 2020

--

Setup Line & Flask 🚀 🎃

Project : Object Detection API

บทความนี้บันทึกไว้อ่านเอง ใครจะลองทำตามควรมีพื้นฐานดังนี้

  • Python
  • Line Messaging API

Software

- Python (version 3.7.6)

- Anaconda (version 3.7)

- labelImg (version 1.8.1)

- Line Messaging API (Python SDK version 1.16.0)

- Flask (version 1.1.1)

- Tensorflow (version 1.12–1.15)

- ngrok

Solution

สมัครและเข้าใช้ระบบ Line Messaging API ที่ https://developers.line.biz/ จากนั้นสร้าง Provider และ Channel

เข้าไปยัง Channel ที่สร้าง นำค่า Channel secret จากหน้า Basic settings และ Channel access token จากหน้า Messaging API มาเก็บไว้เพื่อนำไปทำ Object Detection API ต่อไป

ตั้งค่าการตอบสนองของ Line Messaging API ดังรูป ในส่วน Webhook URL จะได้จาก การทำงานของโปรแกรม flask-kitchensink จากตัวอย่างของ line-bot-sdk-python

ดาวน์โหลดไฟล์ตัวอย่างการทำ Line Messaging API ด้วย Python SDK จาก https://github.com/line/line-bot-sdk-python จากนั้นเข้าไปที่ Folder example และทดสอบโปรแกรมด้วย flask-kitchensink ดังนี้

นำค่า Channel secret และ Channel access token จาก Line Messaging API มาใส่ที่บรรทัดที่ 55 และ 56 ตามลำดับ

สั่งให้โปรแกรมเริ่มทำงาน จะได้ url ที่ http://localhost:8000/

แต่ http://localhost:8000/ เป็นการทำงานภายในของคอมพิวเตอร์เอง ไม่สามารถเชื่อมต่อไปยัง Server ของ Line Messaging API ได้ โดยมีวิธีแก้ไขหลักๆ 2 วิธีคือ
1. นำโปรแกรม flask-kitchensink ขึ้นไปทำงานบน Public Server เช่น Google Could Platform (GCP), AWS, Azure, Heroku
2. ส่งค่า http://localhost:8000/ ออกไปเป็น Public Server โดยใช้ ngrok

เนื่องจากอยู่ในขั้นตอนการทดสอบ จึงเลือกใช้ ngrok ในการทำ Public Server ด้วยคำสั่ง

ngrok http 8000

นำ url Forwarding ที่ได้มาจาก ngrok ไปใส่ที่ Webhook URL โดยเลือก url ที่เป็น https เนื่องจากระบบ Line Messaging API บังคับให้มีการใช้ Webhook ที่มีการเข้ารหัสความปลอดภัย โดยทำการกดปุ่ม Edit แก้ไข Webhook URL และใส่ path url เป็น /callback ตามที่ได้กำหนดไว้ในโปรแกรม flask-kitchensink จากนั้นกดปุ่ม Update และปุ่ม Verify ถ้าถูกต้องจะมีข้อความ Success ปรากฏดังภาพ

ทดสอบการส่งไฟล์รูปภาพ

ถ้าส่งรูปภาพจะได้ url ของไฟล์รูปภาพที่ส่งไปแล้วถูกบันทึกไว้ที่ Server กลับมา แต่ถ้าส่งข้อความว่า image จะได้รูปภาพที่ถูกตั้งค่าไว้ในโปรแกรมตัวอย่างกลับมา

สรุป

จากการทดสอบโปรแกรมตัวอย่างพบว่าโปรแกรมมีโครงสร้างและระบบการทำงานเบื้องต้นตามที่ต้องการแล้ว โดยขั้นตอนต่อไปจะทำการแก้ไขและปรับปรุงการทำงานของโปรแกรม โดยให้การทำงานเป็นเมื่อส่งไฟล์รูปภาพเข้าไปที่ระบบ Line Messaging API แล้ว ทางระบบส่งคืนรูปภาพใหม่ที่ผ่านกระบวนการ Object Detection เสร็จแล้วกลับมาให้ผู้ใช้

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Nonpavit Detbun 🔋🍺
Nonpavit Detbun 🔋🍺

Written by Nonpavit Detbun 🔋🍺

I’m Electrical Engineering. 📟 I have an interest in Web App, Mobile App, IoT and Microcontroller 🧐

No responses yet

Write a response