เห็นใน timeline มีการ share เรื่องไปรษณีย์ไทย
เปิด API สำหรับการ tracking หรือติดตามสถานะของการส่งของได้
เป็นแนวทางที่ดีมาก ๆ และน่าจะทำมาตั้งนานแล้ว
ดังนั้นมาดูกันหน่อยว่ามีอะไรให้ใช้งานบ้าง ?
และใช้งานแล้วเป็นอย่างไร ?

ไม่ได้เข้า web นี้นานมาก ๆ  (Font ที่ใช้งานดูไม่น่าใช้เลย)
ก็เห็นว่าเปลี่ยนใหม่แล้วพัฒนาใหม่เป็น Single Page Application (SPA) ด้วย
แถม responsive อีกด้วย แจ่มเลยนะ
สนับสนุน 3 ภาษาไปเลยคือ ไทย อังกฤษ และ จีน
แต่เปลี่ยนภาษาเพียงเมนูนะ ส่วนข้อมูลภาษาไทยล้วน ๆ !!

ลองเข้าไปสมัครและใช้งานกันหน่อย

โดยผมสมัครแบบลูกค้าทั่วไป
จะมีข้อจำกัดในการใช้งาน API คือติดตามได้ 1,000 หมายเลขต่อวัน
ส่วนลูกค้าองค์กรได้ 10,000 หมายเลขต่อวัน

เมื่อ login เข้าไปก็มีเมนู 4 ส่วนคือ

  • Dashboard หรือ แผลงควบคุม
  • Track หรือการติดตาม
  • Analytic หรือการวิเคราะห์ ส่วนนี้ยังไม่เปิดให้ใช้งาน
  • Developer guide หรือสำหรับนักพัฒนา เราจะมาดูในส่วนนี้กัน

ในส่วนของ API ที่เปิดให้ใช้งานนั้นแบ่งเป็น 2 ส่วนคือ

  • Public API ประกอบไปด้วย SOAP API และ RESTful API
  • Webhook เอาไว้ integrate กับระบบงานของเรา ซึ่งทางระบบของไปรษณีย์ไทยจะส่งมาให้เมื่อมีการเปลี่ยนแปลง

โดย RESTful API ของรูปแบบ API ใหม่ที่แนะนำให้ใช้
เพราะว่า SOAP API มันเก่าละ แถมช้าด้วย
ขั้นตอนการใช้งานเป็นดังนี้

ขั้นตอนที่ 1 ก็สร้าง token ก่อนเลย (Static Token)

(ใช้ภาษาอังกฤษนะครับ เพราะว่าภาษาไทยอ่านยาก)

ขั้นตอนที่ 2 มาอ่าน API document กัน

เปลี่ยนเป็นภาษาอังกฤษ ก็ยังเป็นภาษาไทยอยู่ !!

การใช้งาน API ไม่ยากเป็นดังนี้

  1. ทำการ getToken โดยใช้ static token จากขั้นตอนที่ 1 ใส่ใน HEADER ของ HTTP POST ไปเลย แล้วจะได้ token มามีอายุการใช้งาน 1 เดือน (อย่าลืมขอใหม่ทุกเดือน)
  2. ทำการเรียกใช้งาน API อื่น ๆ ด้วยการส่ง token ที่ได้จากข้อ 1 ผ่าน HEADER ไปด้วย ประกอบไปด้วย GetItems(ครั้งละไม่เกิน 100 item) และ RequestsItems (ครั้งละมากกว่า 100 item ขึ้นไป)

แต่จากการใช้งานพบว่า GetToken API นั้นไม่มีปัญหาอะไร

ใช้งานได้ปกติ ได้ token กลับมาตามที่อธิบายไว้ในเอกสาร แสดงดังรูป

GetToken API with Postman

แต่เมื่อนำ Token ที่ได้จาก GetToken API มาใช้ในการดึงข้อมูลผ่าน GetItems API กลับไม่ได้ !!

แจ้งว่า HTTP Code 403 คือ HTTP 403 Forbidden
[เกิดในขั้นตอน Authentication] ไม่ผ่านการอนุญาติ
ไม่รู้ว่าเป็นเพราะว่าอะไร ฝากทีมงานพัฒนาดูให้ด้วยนะครับ
หรือต้องผ่านขั้นตอนอะไรอีกหรือไม่ ?

GetItems API with Postman

ใช้งานไม่ได้ ก็จบตรงนี้ดีกว่า

เพิ่มเติม คือใช้งาน API ได้แล้ว

จาก comment ใน Facebook บอกว่า
ค่าที่ใส่ตรง Authorization ใน HEADER นั้นต้องขึ้นต้นด้วย Token+ช่องว่าง 1 ตัว

ผมจึงมาลองใช้งานพบว่า ได้จริง ๆ ด้วย
และเมื่อกลับไปอ่านเอกสารก็มีจริง ๆ ด้วย
ส่วน GetToken API ไม่ต้องใส่คำว่า Token ไปก็ได้นะ !!!
แสดงว่าทั้ง 2 API มีเงื่อนไขการตรวจสอบต่างกันหรือไม่ ?

เพิ่มเติม
Collections ของ Postman เอาขึ้นไว้ที่ GitHub::Up1