วิธีดึงข้อมูล อัตราแลกเปลี่ยน เงินบาท API ธนาคารเเห่งประเทศไทย ด้วย Python

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderators: mindphp, ผู้ดูแลกระดาน

tatiya
PHP VIP Members
PHP VIP Members
Posts: 2845
Joined: 09/07/2018 9:35 am

วิธีดึงข้อมูล อัตราแลกเปลี่ยน เงินบาท API ธนาคารเเห่งประเทศไทย ด้วย Python

Post by tatiya »

API หรือ Application Programming Interface เป็นบริการช่องทางการเชื่อมต่อเพื่อแลกเปลี่ยนข้อมูลจากระบบหนึ่งไปสู่ระบบอื่นๆ ที่ สะดวก รวดเร็ว ปลอดภัย หน้าที่หลักของ API คือคอยรับคำสั่งจากฝั่ง Client ซึ่งก็คือ Application ต่างๆ เช่น Web App., Mobile App., Desktop App. เป็นต้น เมื่อฝั่ง Client ส่งคำสั่ง จะเรียกว่าการ Request จากนั้น ตัว API จะรับคำสั่งดังกล่าว นำไปประมวลผล และสรุปเป็นข้อมูลที่ตรงกับ Request และส่งข้อมูลเหล่านั้นกลับไปที่ฝั่ง Client หรือ Application เพื่อนำไปใช้งานต่อไป (อันนี้ก็อปมาจากเว็บ ของธนาคารแห่งประเทศไทยนะครับ)

โอเครเมื่อรู้แล้วว่า API คืออะไรมาเริ่มวิธีการดึงข้อมูล API มาจากเว็บ https://apiportal.bot.or.th เลยนะครับ

1. ให้เราไปสมัครสมาชิกที่เว็บ https://apiportal.bot.or.th/bot/public/ ก่อนนะครับ อันนี้ผมจะไม่ลงรายละเอียดมาก คลิกที่นี่เพื่อสมัคร

2. เมื่อเรามี Account เรียบร้อยแล้ว ให้เราเข้าระบบ แล้วไปที่เมนู Apps >> Create new App
Selection_018.png
3. กรอกข้อมูลเข้าไปในแต่ล่ะช่อง แล้วกด submit
Selection_018.png
4. เมื่อเรากด submit แล้วจะเด้งมาหน้านี้ ให้กด Show Client Secret แล้วจดรหัส client secret และ และ Client ID ไว้นะครับ เดี๋ยวเราจะได้ใช้นะครับ
Selection_019.png
5. ต่อไปกดไปที่ API Products >> Exchange Rates (2.0.1) (ในตัวอย่างนี้คือ Exchange Rate 2.0.1 ภายในมี API ให้ใช้งานสองตัว) คลิกที่ปุ่ม Subscribe แล้วเลือกแอพพลิเคชั่นที่เราเพิ่งลงทะเบียนไป
Selection_020.png
Selection_021.png
6. ที่แถบข้างซ้ายคลิกที่ API ที่จะใช้งาน เพื่อเข้าไปศึกษารายละเอียดต่างๆ ของ API เช่นความถี่และเวลาอัพเดตข้อมูล, รูปแบบ parameter ที่ API รับ, ตัวอย่างการเรียก request ในภาษาต่างๆ และตัวอย่าง response ในรูปแบบ JSON (ในตัวอย่างนี้คือ Average Exchange Rate รายวัน)

ในหน้าต่างนี้ ฝั่งขวาจะมีตัวอย่าง Code อยู่นะครับที่ใช้สำหรับ Python (อันนี้ผมแนะนำให้ใช้เป็น Python 3 นะครับ)
Selection_022.png
ข้อมูลที่เราต้องใช้คือ
1. x-ibm-client-id ต้องกรอก Client ID ที่เราได้มาจาก ขั้นตอนที่ 4 นะครับ
2. start_period และ end_period รูปแบบการใส่จะเป็นแบบนี้นะครับ ตัวอย่าง

Code: Select all

conn.request("GET", "/bot/public/Stat-ReferenceRate/v2/DAILY_REF_RATE/?start_period=2019-03-24&end_period=2019-03-25", headers=headersssss)

Code: Select all

import http.client

conn = http.client.HTTPSConnection("apigw1.bot.or.th")

headers = {
    'x-ibm-client-id': "คีย์ Client ID",
    'accept': "application/json"
    }

conn.request("GET", "/bot/public/Stat-ReferenceRate/v2/DAILY_REF_RATE/?start_period=ระยะเวลาเริ่มต้น&end_period=ระยะเวลาสิ้นสุด", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
ข้อมูลที่ได้จะเป็นข้อมูลในรูปแบบ json นะครับ ถ้าต้องการ ใช้ python ถอดรหัส หรือเข้ารหัส JSON ให้ดูที่กระทู้นี้นะครับ
viewtopic.php?p=138579#p138579

เพิ่มเติ่ม
ถ้าหากเราต้องการทดสอบ API ก่อนเริ่มลงมือเขียนโปรแกรมก็สามารถทำได้ที่ แถบตัวอย่างโค้ดทางด้านขวา เลื่อนหน้าจอลงมานิดนึงจะมีช่อง Try this operation ให้ได้ทดลองกรอก parameter และกด Call operation เพื่อดูผลลัพธ์
Selection_024.png
ผลลัพท์ก็จะออกมาประมาณนี้นะครับ
Selection_025.png
Selection_025.png (51.97 KiB) Viewed 2316 times
สามารถใช้งานได้ที่นี่
https://www.mindphp.com/tools/tools_exc ... /index.php
Image Image Image GOODBYE AND GOODLUCK EVERYONE Love you all bye. Thank you for everything.
26/09/2019
User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 27886
Joined: 31/03/2014 10:02 am
Contact:

Re: วิธีดึงข้อมูล API ธนาคารเเห่งประเทศไทย ด้วย Python

Post by thatsawan »

เดี๋ยวลองทำตามค่ะ
User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 27886
Joined: 31/03/2014 10:02 am
Contact:

Re: วิธีดึงข้อมูล อัตราแลกเปลี่ยน เงินบาท API ธนาคารเเห่งประเทศไทย ด้วย Python

Post by thatsawan »

ลองทำเเล้วตัวอย่างที่ให้มา ใช้งานได้เเค่ USD หน่วยเดียว
User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 27886
Joined: 31/03/2014 10:02 am
Contact:

Re: วิธีดึงข้อมูล API ธนาคารเเห่งประเทศไทย ด้วย Python

Post by thatsawan »

ต้องใช้ตามตัวอย่างนี้ ถึงระบุ currency เเละดึง ค่าได้
https://apiportal.bot.or.th/bot/public/node/503


Average Exchange Rate - THB / Foreign Currency 2.0.1

Code: Select all

import http.client

conn = http.client.HTTPSConnection("apigw1.bot.or.th")

headers = {
    'x-ibm-client-id': "KEY",
    'accept': "application/json"
    }

conn.request("GET", "/bot/public/Stat-ExchangeRate/v2/DAILY_AVG_EXG_RATE/?currency=SEK&start_period=2020-12-24&end_period=2020-12-25", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Programming - C/C++ & java & Python”

Who is online

Users browsing this forum: No registered users and 6 guests