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

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

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

tatiya
PHP VIP Members
PHP VIP Members
โพสต์: 2845
ลงทะเบียนเมื่อ: 09/07/2018 9:35 am

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

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

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

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 9151 times
สามารถใช้งานได้ที่นี่
https://www.mindphp.com/tools/tools_exc ... /index.php
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

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

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

เดี๋ยวลองทำตามค่ะ
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

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

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

ลองทำเเล้วตัวอย่างที่ให้มา ใช้งานได้เเค่ USD หน่วยเดียว
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

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

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

ต้องใช้ตามตัวอย่างนี้ ถึงระบุ 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

โพสต์ที่ยังไม่ได้อ่าน โดย บุคคลทั่วไป »

จะดึง ค่า rate ออกมายังไงครับ ผมมาถึงส่วนสุดท้าย แต่ดึงค่า rate ออกมาไม่ได้
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

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

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ลองเอาตัวอย่างโค้ด และ ผลที่ต้องการมาดูหน่อยครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 98