ด้านล่างคือตัวอย่างการใช้งาน API ผ่าน Ruby สองแบบ:
Net::HTTP ในไลบรารีมาตรฐานเริ่มต้นด้วยการขอรับ refresh-token และ access-token โดยใช้ username, password
Ruby: ด้านล่างเป็นตัวอย่างการใช้ Net::HTTP เพื่อขอ token จาก API โดยตรง
Ruby on Rails: ใน Rails ท่านสามารถสร้าง Controller เพื่อรับ username/password จาก params แล้วขอ token จาก API
require 'net/http'
require 'json'
require 'uri'
username = 'your_username'
password = 'your_password'
uri = URI("https://hcode.moph.go.th/api/token/")
req = Net::HTTP::Post.new(uri, {'Content-Type' => 'application/json'})
req.body = {username: username, password: password}.to_json
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(req)
end
tokens = JSON.parse(res.body)
puts "Refresh Token: #{tokens['refresh']}"
puts "Access Token: #{tokens['access']}"
class TokensController < ApplicationController
require 'net/http'
require 'json'
require 'uri'
def get_tokens
username = params[:username] || 'your_username'
password = params[:password] || 'your_password'
uri = URI("https://hcode.moph.go.th/api/token/")
req = Net::HTTP::Post.new(uri, {'Content-Type' => 'application/json'})
req.body = {username: username, password: password}.to_json
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(req)
end
tokens = JSON.parse(res.body)
render json: tokens
end
end
รันสคริปต์ Ruby หรือเรียกใช้ Rails endpoint (เช่น POST /tokens/get_tokens?username=...&password=...) เพื่อรับ token
ใช้ refresh-token เพื่อขอ access-token ใหม่
Ruby: ตัวอย่างการใช้ refresh-token ในสคริปต์ Ruby ธรรมดา
Ruby on Rails: ท่านสามารถสร้าง action ใน Controller เพื่อส่ง refresh-token และรับ access-token ใหม่
require 'net/http'
require 'json'
require 'uri'
refresh_token = 'your_refresh_token_here'
uri = URI("https://hcode.moph.go.th/api/token/refresh/")
req = Net::HTTP::Post.new(uri, {'Content-Type' => 'application/json'})
req.body = {refresh: refresh_token}.to_json
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(req)
end
json = JSON.parse(res.body)
puts "New Access Token: #{json['access']}"
class TokensController < ApplicationController
require 'net/http'
require 'json'
require 'uri'
def refresh
refresh_token = params[:refresh] || 'your_refresh_token_here'
uri = URI("https://hcode.moph.go.th/api/token/refresh/")
req = Net::HTTP::Post.new(uri, {'Content-Type' => 'application/json'})
req.body = {refresh: refresh_token}.to_json
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(req)
end
json = JSON.parse(res.body)
render json: json
end
end
Net::HTTP