![](http://www.somkiat.cc/wp-content/uploads/2019/09/thailandpost.jpg)
เห็นใน timeline มีการ share เรื่องไปรษณีย์ไทย
เปิด API สำหรับการ tracking หรือติดตามสถานะของการส่งของได้
เป็นแนวทางที่ดีมาก ๆ และน่าจะทำมาตั้งนานแล้ว
ดังนั้นมาดูกันหน่อยว่ามีอะไรให้ใช้งานบ้าง ?
และใช้งานแล้วเป็นอย่างไร ?
ไม่ได้เข้า web นี้นานมาก ๆ (Font ที่ใช้งานดูไม่น่าใช้เลย)
ก็เห็นว่าเปลี่ยนใหม่แล้วพัฒนาใหม่เป็น Single Page Application (SPA) ด้วย
แถม responsive อีกด้วย แจ่มเลยนะ
สนับสนุน 3 ภาษาไปเลยคือ ไทย อังกฤษ และ จีน
แต่เปลี่ยนภาษาเพียงเมนูนะ ส่วนข้อมูลภาษาไทยล้วน ๆ !!
ลองเข้าไปสมัครและใช้งานกันหน่อย
โดยผมสมัครแบบลูกค้าทั่วไป
จะมีข้อจำกัดในการใช้งาน API คือติดตามได้ 1,000 หมายเลขต่อวัน
ส่วนลูกค้าองค์กรได้ 10,000 หมายเลขต่อวัน
![](http://www.somkiat.cc/wp-content/uploads/2019/09/image-12-1024x398.png)
เมื่อ login เข้าไปก็มีเมนู 4 ส่วนคือ
- Dashboard หรือ แผลงควบคุม
- Track หรือการติดตาม
- Analytic หรือการวิเคราะห์ ส่วนนี้ยังไม่เปิดให้ใช้งาน
- Developer guide หรือสำหรับนักพัฒนา เราจะมาดูในส่วนนี้กัน
![](http://www.somkiat.cc/wp-content/uploads/2019/09/image-13-1024x586.png)
ในส่วนของ API ที่เปิดให้ใช้งานนั้นแบ่งเป็น 2 ส่วนคือ
- Public API ประกอบไปด้วย SOAP API และ RESTful API
- Webhook เอาไว้ integrate กับระบบงานของเรา ซึ่งทางระบบของไปรษณีย์ไทยจะส่งมาให้เมื่อมีการเปลี่ยนแปลง
โดย RESTful API ของรูปแบบ API ใหม่ที่แนะนำให้ใช้
เพราะว่า SOAP API มันเก่าละ แถมช้าด้วย
ขั้นตอนการใช้งานเป็นดังนี้
ขั้นตอนที่ 1 ก็สร้าง token ก่อนเลย (Static Token)
(ใช้ภาษาอังกฤษนะครับ เพราะว่าภาษาไทยอ่านยาก)
![](http://www.somkiat.cc/wp-content/uploads/2019/09/image-14-1024x427.png)
ขั้นตอนที่ 2 มาอ่าน API document กัน
เปลี่ยนเป็นภาษาอังกฤษ ก็ยังเป็นภาษาไทยอยู่ !!
![](http://www.somkiat.cc/wp-content/uploads/2019/09/image-15-1024x587.png)
การใช้งาน API ไม่ยากเป็นดังนี้
- ทำการ getToken โดยใช้ static token จากขั้นตอนที่ 1 ใส่ใน HEADER ของ HTTP POST ไปเลย แล้วจะได้ token มามีอายุการใช้งาน 1 เดือน (อย่าลืมขอใหม่ทุกเดือน)
- ทำการเรียกใช้งาน API อื่น ๆ ด้วยการส่ง token ที่ได้จากข้อ 1 ผ่าน HEADER ไปด้วย ประกอบไปด้วย GetItems(ครั้งละไม่เกิน 100 item) และ RequestsItems (ครั้งละมากกว่า 100 item ขึ้นไป)
แต่จากการใช้งานพบว่า GetToken API นั้นไม่มีปัญหาอะไร
ใช้งานได้ปกติ ได้ token กลับมาตามที่อธิบายไว้ในเอกสาร แสดงดังรูป
![](http://www.somkiat.cc/wp-content/uploads/2019/09/image-16-1024x654.png)
แต่เมื่อนำ Token ที่ได้จาก GetToken API มาใช้ในการดึงข้อมูลผ่าน GetItems API กลับไม่ได้ !!
แจ้งว่า HTTP Code 403 คือ HTTP 403 Forbidden
[เกิดในขั้นตอน Authentication] ไม่ผ่านการอนุญาติ
ไม่รู้ว่าเป็นเพราะว่าอะไร ฝากทีมงานพัฒนาดูให้ด้วยนะครับ
หรือต้องผ่านขั้นตอนอะไรอีกหรือไม่ ?
![](http://www.somkiat.cc/wp-content/uploads/2019/09/image-17-1024x673.png)
ใช้งานไม่ได้ ก็จบตรงนี้ดีกว่า
เพิ่มเติม คือใช้งาน API ได้แล้ว
จาก comment ใน Facebook บอกว่า
ค่าที่ใส่ตรง Authorization ใน HEADER นั้นต้องขึ้นต้นด้วย Token+ช่องว่าง 1 ตัว
![](http://www.somkiat.cc/wp-content/uploads/2019/09/Screen-Shot-2562-09-20-at-13.06.25.png)
ผมจึงมาลองใช้งานพบว่า ได้จริง ๆ ด้วย
และเมื่อกลับไปอ่านเอกสารก็มีจริง ๆ ด้วย
ส่วน GetToken API ไม่ต้องใส่คำว่า Token ไปก็ได้นะ !!!
แสดงว่าทั้ง 2 API มีเงื่อนไขการตรวจสอบต่างกันหรือไม่ ?
![](http://www.somkiat.cc/wp-content/uploads/2019/09/Screen-Shot-2562-09-20-at-13.06.09-1024x669.png)
เพิ่มเติม
Collections ของ Postman เอาขึ้นไว้ที่ GitHub::Up1