Dieses Mal werde ich ein Beispiel mit dem grundlegendsten net / http geben, aber es gibt mehrere HTTP-Clients in Ruby.
Informationen zu Anforderungsparametern Fügen Sie für GET den Parameter in die Abfragezeichenfolge ein. Im Fall von POST war ich ein wenig süchtig danach, es in den Anfragetext aufzunehmen.
Ich werde es später umschreiben.
require 'uri'
require 'net/http'
require 'openssl'
require 'base64'
## 1.Zugriffstoken durch Oauth-Authentifizierung erhalten
# client_ID und Client_Verwenden Sie Geheimnis
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')
#Erstellen Sie eine HTTP-Anforderung, um ein Zugriffstoken zu erhalten
https = Net::HTTP.new(uri.host, uri.port)
https.use_ssl = true
#Das Folgende hängt von den Spezifikationen der verwendeten Web-API ab.
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'
#Zugriffstoken von Anforderungsübertragung / -antwort abrufen
response = https.request(request)
response_body = JSON.parse(response.body)
access_token = response_body['access_token']
## 2.HTTP-Anfrage an Web-API senden
#Erstellen einer HTTP-Anforderung mithilfe eines Zugriffstokens
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
#Das Folgende hängt von den Spezifikationen der verwendeten Web-API ab.
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)
#Anfrage senden / Antwort erhalten
response = https.request(request)
Wenn Sie Web-API-Spezifikationen oder Beispielcode verwenden möchten, lesen Sie diese ebenfalls.
faraday
oauth2
Recommended Posts