LINE Bot + ThaiPost Rest API (Include Source Code)

PamornT
LINE Developers Thailand

--

บทความนี้ผมจะแนะนำเกี่ยวกับการทำ LINE Bot โดยสร้าง Webhook อยู่บน Cloud Functions for Firebase และเชื่อมต่อกับ API ของไปรษณีย์ไทยนะครับ

โดยผมขอข้ามขั้นตอนการเริ่มทำ LINE Bot ไปนะครับ สำหรับผู้ที่ไม่เคยทำ LINE Bot มาก่อนแนะนำให้ทำตามบทความนี้ก่อนนะครับ

ขั้นตอนดังนี้

  1. ลงทะเบียนบนเว็บไปรษณีย์ไทย
  2. create API token
  3. Get Token
  4. Get Items
  5. Create Flex Bubble

ไปเริ่มกันเลย

1. สมัครสมาชิกเว็บไปรษณีย์ไทย

ก่อนอื่นเราต้อง เข้าไปสมัครเพื่อเปิดใช้งานก่อนครับ เข้าไปสมัครได้ที่นี่เลย
https://track.thailandpost.co.th

2. create API token

หลังจากสมัครเสร็จแล้วเราจะเริ่มขั้นตอนการเชื่อมต่อกับ API ของไปรษณีย์ไทยกันแล้ว เริ่มต้นให้เราไป create API token เพื่อใช้ในการ Authorize ก่อนครับ ขั้นตอนดังนี้เลย

  1. คลิกที่เมนู แผงควบคุม (Dashboard) ที่เมนูด้านบน
  2. คลิกที่เมนู สำหรับนักพัฒนา (Developer Guide) ที่เมนูด้านซ้าย
  3. คลิกที่ปุ่ม Create Token

เราก็จะได้ Token มาชุดนึง ให้ copy ไว้แล้วเอาไปใส่ที่ config.json กันเลยค้าบ

ก่อนจะไปขั้นตอนถัดไปเราไปดูรายละเอียดของ API กันก่อนว่ามีอะไรให้เราเรียกใช้บ้าง เข้าไปที่ลิงก์นี้เลยยย https://track.thailandpost.co.th/developerGuide

จะเห็นว่ามี Method ให้เรียกใช้งาน 3 method ด้วยกัน

  1. GetToken
    สำหรับ สร้าง Token เพื่อให้ในการรับส่งข้อมูล Token จะมีการกำหนดวันหมดอายุ 1 เดือน
  2. GetItems
    ใช้ในการ Get ข้อมูลจำนวนไม่เกิน 100 หมายเลขเท่านั้นข้อมูลจะถูกแนบส่งไปกับ HTTPResponse
  3. RequestItems
    ใช้ในการ Get ข้อมูลจำนวน 100 หมายเลขขึ้นไป ข้อมูลจะถูกส่งไปยัง Email ในรูปแบบ Link File Download

3. Get Token

ขั้นตอนนี้เราจะทำการ get ค่า authorize token เพื่อใช้ในการเรียก api method อื่นๆ นะครับ รายละเอียดในการเรียกก็ตามนี้เลยครับ

ตัวอย่าง Code ครับ

LINE Bot + ThaiPost API -> GetToken

4. Get Items

หลังจากขั้นตอนที่แล้วเราก็ได้ token มาแล้ว ต่อไปเราจะทำการเรียกดูสถานะการส่งพัสดุกันแล้ว โดยเราจะเรียกไปที่ method GetItems รายละเอียด Request Response ตามด้านล่างเลยครับ

ตัวอย่าง Code นะครับ

LINE Bot + ThaiPost API -> GetItems

5. Create Flex Bubble

ตอนนี้เราก็ได้ผลลัพธ์สถานะการจัดส่งมาแล้วนะครับ โดยผมเก็บอยู่ในตัวแปร tracks ที่นี้เราจะมาทำการสร้าง Flex message เพื่อตอบกลับ user กันครับ โดยผมจะแบ่งขั้ตอนการจัดส่งทั้งหมดออกเป็น Box และ ทำการตรวจสอบด้วยว่าถ้าจัดส่งเรียบร้อยแล้วให้เปลี่ยน BackgroundColor เป็นสีเขียวนะครับ

ไปดู Code กันเลย

การตอบกลับจะมี 2 กรณี คือ

  1. พบเลขพัสดุ จะ return ออกฟังก์ชั่น reply_track ที่เป็น Flex Message โดยส่งค่า payload ที่เตรียมไว้จากด้านบนไปให้

2. ไม่พบเลขพัสดุ จะ return ออกฟังก์ชั่น reply_notfound เป็นข้อความว่า ไม่พบเลขพัสดุที่ระบุ

หน้าตาตัวอย่างจะประมาณนี้นะครับ

เท่านี้เราก็สามารถตรวจสอบสถานะของพัสดุเราได้แล้วนะครับ ไม่ยากเลยใช่มั้ยครับ แต่สิ่งที่ทางไปรษณีย์ไทยเตรียมไว้ให้เราไม่ได้มีแค่ Rest API นะครับ ยังมีอีกส่วนนึงที่น่าสนใจมากก็คือ Webhook นั่นเอง

ใครสนใจเรื่อง Webhook ไปอ่านต่อตามลิงก์ด้านล่างเลยค้าบบ

Source Code

Code ทั้งหมดในบทความนี้ สามารถเข้าไปโหลดได้ที่ Git ลิงก์นี้เลยครับ

จบแล้วว ขอลาไปก่อนนะครับ แล้วเจอกันบทความต่อไปครับ สวัสดีครับ (^/\^)

ใครที่อ่านแล้วยังไม่เข้าใจ ไปลองทำต่อใน Codelabs นี้ได้เลยครับ มีขั้นตอนทำตามได้เลยครับ

--

--