Cette fois, je vais donner un exemple en utilisant le net / http le plus basique, mais il y a plusieurs clients HTTP dans Ruby.
À propos des paramètres de demande Pour GET, incluez le paramètre dans la chaîne de requête, Dans le cas de POST, j'étais un peu accro à l'inclure dans le corps de la requête.
Je vais le réécrire plus tard.
require 'uri'
require 'net/http'
require 'openssl'
require 'base64'
## 1.Obtention du jeton d'accès par authentification Oauth
# client_identifiant et client_Utiliser le secret
client_id = ENV['API_CLIENT_ID']
client_secret = ENV['API_CLIENT_SECRET']
credential = Base64.strict_encode64(client_id + ':' + client_secret)
uri = URI.parse('https://example.oauth2/token')
#Créez une requête HTTP pour obtenir un jeton d'accès
https = Net::HTTP.new(uri.host, uri.port)
https.use_ssl = true
#Les éléments suivants dépendent des spécifications de l'API Web utilisée.
request_header = {
'Authorization': "Basic #{credential}",
'Content-Type': 'application/x-www-form-urlencoded'
}
request = Net::HTTP::Post.new(uri.request_uri, request_header)
request.body = 'grant_type=client_credentials'
#Obtenez un jeton d'accès à partir de la transmission / réponse de la demande
response = https.request(request)
response_body = JSON.parse(response.body)
access_token = response_body['access_token']
## 2.Envoyer une requête HTTP à l'API Web
#Créer une requête HTTP à l'aide d'un jeton d'accès
endpoint_uri = URI.parse('https://example.api.com' + '/v1/hoge/huga')
https = Net::HTTP.new(endpoint_uri.host, endpoint_uri.port)
https.use_ssl = true
#Les éléments suivants dépendent des spécifications de l'API Web utilisée.
request_header = {
'Authorization': "Bearer #{access_token}",
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json'
}
request = Net::HTTP::Post.new(endpoint_uri.request_uri, request_header)
data = { api_key: "abcd1234", name: "test", email: "[email protected]" }
request.body = URI.encode_www_form(data)
#Envoyer une demande / obtenir une réponse
response = https.request(request)
Si vous avez des spécifications d'API Web ou des exemples de code à utiliser, lisez-les également.
faraday
oauth2
Recommended Posts