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

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

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

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

โดย mindphp » 27/01/2022 10:51 am

ลองเอาตัวอย่างโค้ด และ ผลที่ต้องการมาดูหน่อยครับ

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

โดย บุคคลทั่วไป » 27/01/2022 10:44 am

จะดึง ค่า rate ออกมายังไงครับ ผมมาถึงส่วนสุดท้าย แต่ดึงค่า rate ออกมาไม่ได้

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

โดย thatsawan » 27/12/2020 6:06 pm

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


Average Exchange Rate - THB / Foreign Currency 2.0.1

โค้ด: เลือกทั้งหมด

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"))

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

โดย thatsawan » 27/12/2020 4:24 pm

ลองทำเเล้วตัวอย่างที่ให้มา ใช้งานได้เเค่ USD หน่วยเดียว

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

โดย thatsawan » 26/12/2020 3:50 pm

เดี๋ยวลองทำตามค่ะ

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

โดย tatiya » 25/03/2019 4:27 pm

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 รูปแบบการใส่จะเป็นแบบนี้นะครับ ตัวอย่าง

โค้ด: เลือกทั้งหมด

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

โค้ด: เลือกทั้งหมด

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 9262 times
สามารถใช้งานได้ที่นี่
https://www.mindphp.com/tools/tools_exc ... /index.php

ข้างบน