BOT ดึงอัตราแลกเปลี่ยนธนาคารแห่งประเทศไทยอัตโนมัติผ่าน API ด้วย .NET Core

API คืออะไร?
API เป็นตัวย่อของ Application Programming Interface แปลว่า “ตัวเชื่อมต่อระหว่างแอปพลิเคชันในการโปรแกรม” เป็นกลไกที่ช่วยให้แอปพลิเคชันใด ๆ สามารถเชื่อมต่อกับแอปพลิเคชันอื่น ที่อยู่ต่างโปรเจ็กต์ หรือต่างระบบ หรือต่างคอมพิวเตอร์ หรือคอมพิวเตอร์ที่อยู่ไกลออกไปอีกซีกโลก เพื่อให้สามารถทำงานร่วมกันได้ เหมือนเป็นแอปพลิเคชันเดียวกันAPI ที่จะกล่าวถึงในบทคามนี้เป็น API แบบ REST (Representational State Transfer) ซึ่งเป็น API ที่ช่วยให้แอปพลิเกชันสามารถเชื่อมต่อกันผ่านโปรโตคอล HTTP มาตรฐาน เช่น GET, POST, PUT และ DELETE เพื่อเข้าถึงและจัดการข้อมูลผ่าน URL ของเว็บ เป็นวิธีที่ยืดหยุ่น เบา และเป็นมาตรฐานให้แอปพลิเกชันต่าง ๆ ทำงานประสานกันผ่านอินเทอร์เน็ตได้
อ่านเพิ่มเติม API คืออะไร มีประโยชน์อย่างไร
อธิบายโครงสร้าง API โดยสังเขป

ธนาคารแห่งประเทศไทย (Bank of Thailand ย่อ ธปท. หรือ BOT) มี API เพื่อสนับสนุนการดำเนินธุรกิจทั้งภาครัฐ เอกชน และประชาชนทั่วไป ช่วยลดขั้นตอนการทำงานและต่อยอดสร้างนวัตกรรมได้สะดวก API ที่ ธปท. เผยแพร่มีทั้งสิ้นสามกลุ่มได้แก่
· ข้อมูลที่มีความถี่สูงและมีผู้ใช้งานมาก: เช่น อัตราแลกเปลี่ยน อัตราดอกเบี้ย ฯลฯ
· ข้อมูลสถิติ: เช่น สถิติเศรษฐกิจการเงิน สถิติสถาบันการเงิน ฯลฯ
· ข้อมูลอื่น ๆ: เช่น ข้อมูลเปรียบเทียบผลิตภัณฑ์ทางการเงิน วันหยุดตามประเพณีของสถาบันการเงิน ฯลฯ
ในบทความนี้ 9Expert Training จะนำเสนอเฉพาะ API ในหัวข้ออัตราแลกเปลี่ยนเงินตราต่างประเทศ
· ข้อมูลที่มีความถี่สูงและมีผู้ใช้งานมาก: เช่น อัตราแลกเปลี่ยน อัตราดอกเบี้ย ฯลฯ
· ข้อมูลสถิติ: เช่น สถิติเศรษฐกิจการเงิน สถิติสถาบันการเงิน ฯลฯ
· ข้อมูลอื่น ๆ: เช่น ข้อมูลเปรียบเทียบผลิตภัณฑ์ทางการเงิน วันหยุดตามประเพณีของสถาบันการเงิน ฯลฯ
ในบทความนี้ 9Expert Training จะนำเสนอเฉพาะ API ในหัวข้ออัตราแลกเปลี่ยนเงินตราต่างประเทศ

วิธีลงทะเบียนสมัครใช้งาน API
ก่อนจะเริ่มใช้งาน API ของธปท.ได้ เราต้องลงทะเบียนสมัครใช้งานก่อน เพราะการเขียนโค้ดติดต่อกับ API จำเป็นต้องมีชื่อ (Client ID) เพื่อใช้ยืนยันตัวบุคคลและรหัสผ่านที่ถูกบันทึกไว้ในฐานข้อมูลของธปท. วิธีลงทะเบียนสมัครใช้งาน API ไม่ยากเย็น ให้ท่านทำตามขั้นตอนต่อไปนี้1. เปิดเว็บบราวเซอร์แล้วไปที่หน้าพอร์ทัล API ของ ธปท. https://apiportal.bot.or.th/bot/public/
2. กดที่ลิงค์ Getting Start

3. กดที่ปุ่ม Create an account
4. ในหน้า Create new account ให้ป้อนข้อมูลส่วนตัวของท่าน เช่น ชื่อ นามสกุล รหัสผ่าน (ตัวอักษรเล็กและใหญ่ ตัวเลข และสัญลักษณ์ผสมกัน ความยาวไม่ต่ำกว่าแปดตัว
5. ข้างล่างสุด ให้คลิกที่ช่องสำหรับกาเครื่องหมาย (check box) Accept
6. ป้อนพิมพ์ Captcha แล้วกดปุ่ม Create new account
7. ออกจากหน้าเว็บของ ธปท. เพื่อไปตรวจสอบอีเมล แล้วกดที่ลิงค์ในอีเมล
4. ในหน้า Create new account ให้ป้อนข้อมูลส่วนตัวของท่าน เช่น ชื่อ นามสกุล รหัสผ่าน (ตัวอักษรเล็กและใหญ่ ตัวเลข และสัญลักษณ์ผสมกัน ความยาวไม่ต่ำกว่าแปดตัว
5. ข้างล่างสุด ให้คลิกที่ช่องสำหรับกาเครื่องหมาย (check box) Accept
6. ป้อนพิมพ์ Captcha แล้วกดปุ่ม Create new account
7. ออกจากหน้าเว็บของ ธปท. เพื่อไปตรวจสอบอีเมล แล้วกดที่ลิงค์ในอีเมล

8. การกดลิงค์จะเปิดหน้า Log in ให้ท่านป้อนชื่อและรหัสผ่านแล้วกดปุ่ม Log in

วิธีลงทะเบียน app
เมื่อท่านได้ลงทะเบียนสมัครใช้งาน API กับ ธปท. แล้ว ก่อนจะเรียกใช้งาน API ได้ ท่านจะต้องลงทะเบียน App ของท่านก่อน โดยมีวิธีทำดังนี้1. กดที่ลิงค์ Apps แล้วกดปุ่ม Create new App

2. ในหน้า Register application ให้ป้อนชื่อ app ของท่าน แม้ว่าตอนนี้เรายังไม่ได้เขียน app ก็ไม่เป็นไร ให้ใส่ชื่อเอาไว้ก่อนเพื่อให้ทำหน้าที่เป็น Client ID สำหรับการทดลองติดต่อ API
3. ช่องอื่น ๆ ไม่บังคับ ปล่อยว่างไว้โดยไม่ต้องกรอกอะไรได้
4. กดปุ่ม Submit
3. ช่องอื่น ๆ ไม่บังคับ ปล่อยว่างไว้โดยไม่ต้องกรอกอะไรได้
4. กดปุ่ม Submit

วิธีตรวจสอบ App ที่ลงทะเบียนไว้
เมื่อท่านลงทะเบียน app แล้ว ท่านสามารถดูรายละเอียดของ App ได้โดยทำตามขั้นตอนต่อไปนี้1. กดที่ลิงค์ Apps
2. ในหน้า Apps ท่านจะเห็นชื่อ app ที่ท่านลงทะเบียนสร้างไว้ ให้กดที่ชื่อ app

3. ในหน้านี้ ให้คัดลอกรหัส Client ID ไว้ เพราะเราจะใช้ในขั้นตอนต่อไป

วิธีลงทะเบียน Plan
เมื่อท่านได้ลงทะเบียนสมัครใช้งาน API กับ ธปท. แล้ว และได้ลงทะเบียน App ของท่านแล้ว ก่อนจะเรียกใช้งาน API ได้ ท่านจะต้องลงทะเบียน plan ก่อน โดยมีวิธีทำดังนี้1. ในหน้า home กดที่ลิงค์ API Products
2. ในหน้า API Products กดที่ลิงค์ Exchange Rate

3. ในหน้า Exchange Rate กดปุ่ม Subscribe

4. จะมีกรอบข้อความให้เลือก app ให้ท่านเลือกชื่อ app ที่ท่านลงทะเบียนไว้ในขั้นตอนก่อนหน้านี้แล้วกดปุ่ม Subscribe

ลักษณะข้อมูลของ API อัตราแลกเปลี่ยนเงินตราต่างประเทศ
API ที่เราจะเรียกใช้ในบทความนี้ เป็นข้อมูลที่รวบรวมรวมอัตราแลกเปลี่ยน ระหว่างเงินบาทและสกุลเงินอื่น ๆ อีก 48 สกุล เป็นข้อมูลอัตราแลกเปลี่ยนได้รับมาจาก “รายงานธุรกรรมแลกเปลี่ยนเงินตราต่างประเทศประจำวัน” จากธนาคารพาณิชย์บางแห่ง และมีข้อมูลบางส่วนได้มาจาก New York Closing และ Financial Times อัตราทั้งหมดจะถูกแปลงเป็นเงินบาท เทียบเท่าด้วยอัตราแลกเปลี่ยนข้ามที่เสนอโดยตลาดปิดกรุงเทพฯลักษณะข้อมูลของ API อัตราแลกเปลี่ยนเงินตราต่างประเทศเป็นดังนี้
· ความถี่ : รายวัน
· กำหนดการเผยแพร่ : ทุกวันทำการเวลา 18.00 น. (BKK-GMT+07:00)
· แหล่งข้อมูล :
o ธนาคารพาณิชย์ที่จดทะเบียนในประเทศไทย
o สาขาธนาคารต่างประเทศ
o สถาบันการเงินเฉพาะกิจ
การทำงานเป็นแบบ REST API รูปแบบของ URL มีพารามิเตอร์ที่เรียบง่าย ประกอบด้วย ตำแหน่ง (end point) เวลาเริ่ม (start period) เวลาจบ (end period) และสกุลเงิน (currency ถ้าไม่ระบุสกุลเงิน จะตอบกลับทั้ง 48 สกุลเงิน) รูปแบบของ URL เป็นดังนี้

ข้อมูลตอบกลับเป็น JSON ดังนี้

วิธีทดสอบการทำงาน API โดยไม่ต้องเขียนโค้ด
เมื่อท่านลงทะเบียนสมัครใช้งาน API กับธปท. แล้ว และได้ลงทะเบียน App ของท่านแล้ว ท่านจะสามารถทดสอบการทำงานของ API ของธปท. ได้โดยไม่ต้องเขียนโค้ด มีวิธีทำดังนี้1. กดที่ลิงค์ API Products
2. ในหน้า API Products กดที่ลิงค์ Exchange Rate
3. แถบรายการซ้ายมือกดที่ลิงค์ Average Exchange Rate THB / Foreign Currency
4. ที่แฟรมขวามือให้เลื่อนหน้าจอลงไปจนเห็นคำว่า Try this operation

5. กรอกเวลาเริ่ม (start period เช่น 2025-01-10) เวลาจบ (end period เช่น 2025-01-11) และสกุลเงิน (currency เช่น USD ถ้าไม่ใส่จะได้รับการตอบกลับ 48 สกุลเงิน)
6. กดปุ่ม Call operation แล้วจะเห็นผลลัพธ์การทำงานทันที
1. เปิดโปรแกรม Visual Studio ในหน้าแรกเลือก Create a new project
2. ในหน้า Create a new project ให้เลือกเทมเพลตแบบ Console App ตามภาพ แล้วกดปุ่ม Next
6. กดปุ่ม Call operation แล้วจะเห็นผลลัพธ์การทำงานทันที
วิธีเตรียมโปรเจกต์ใน Visual Studio
วิธีเตรียมโปรเจกต์ใน Visual Studio เพื่อการเขียนโค้ดเรียก API ดึงข้อมูลอัตราแลกเปลี่ยนเงินตราต่างประเทศจากAPI ของธปท.ให้ทำตามขั้นตอนต่อไปนี้1. เปิดโปรแกรม Visual Studio ในหน้าแรกเลือก Create a new project
2. ในหน้า Create a new project ให้เลือกเทมเพลตแบบ Console App ตามภาพ แล้วกดปุ่ม Next

3. หน้าถัดไป กำหนดชื่อโซลูชันและโปรเจกต์ แล้วกดปุ่ม Next
4. หน้าถัดไป ให้เลือก Framework เป็น .NET 8.0 แล้วกดปุ่ม Create
5. ติดตั้ง nuget package ชื่อ RestSharpNet40 ตามภาพ
4. หน้าถัดไป ให้เลือก Framework เป็น .NET 8.0 แล้วกดปุ่ม Create
5. ติดตั้ง nuget package ชื่อ RestSharpNet40 ตามภาพ

วิธีเขียนโค้ด C# เรียก API
โค้ดทั้งหมดอยู่ภายในเมธอด Main ต่อไปนี้เป็นคำอธิบายโค้ด
- บรรทัดที่ 11 ถึง 13 เป็นพารามิเตอร์ต่าง ๆ ตัวแปร myKey ให้ใส่รหัส Client ID ที่คัดลอกไว้ในขั้นตอนก่อนหน้านี้
- บรรทัดที่ 15 ถึง 18 ทำหน้าที่สร้างไคลแอนด์
- บรรทัดที่ 19 กำหนดสกุลเงิน (เป็นตัวย่อตามาตรฐาน)
- บรรทัดที่ 20 ทำหน้าที่สร้างตัว request
- บรรทัดที่ 21,22 กำหนด header ให้ตัว request
- บรรทัดที่ 23 เรียก API
- บรรทัดที่ 26 รับค่าอัตราแลกเปลี่ยนเงินตราต่างประเทศเป็น JSON เก็บไว้ในตัวแปร myResult
- ท่านสามารถเขียนโค้ดนำค่าในตัวแปร myResult ไปใช้งานได้ตามต้องการ