C'est tout, c'était juste mon erreur, pas la spécification API de comptabilité freee.
ACCESS_TOKEN a été acquis avec OAuth 2.0. Définissez les paramètres comme ceci
BASE_URL = 'https://api.freee.co.jp'
MY_COMPANY_ID = '*********'
USE_ACCESS_TOKEN_HEADER = {
"accept" => "application/json",
"Authorization"=> "Bearer *************************"
}
J'ai frappé l'API pour obtenir les détails du partenaire commercial comme suit (C'est une méthode assez simple et facile à comprendre)
def get_torihikisaki_id(name)
uri = URI.parse(BASE_URL + '/api/1/partners')
uri.query = URI.encode_www_form({"company_id" => MY_COMPANY_ID ,'keyword'=> name})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
headers = USE_ACCESS_TOKEN_HEADER
response = http.get(uri.path, headers)
res_hash = JSON.parse(response.body)
end
puts get_torihikisaki_id('hoge Co., Ltd.')
La réponse était comme ça.
{"status_code"=>400, "errors"=>[{"type"=>"validation", "messages"=>["company_id n'est pas spécifié."]}]}
Je spécifie company_id ~ je me demande pourquoi J'ai beaucoup réfléchi.
Cette phrase
response = http.get(uri.path, headers)
La communication HTTP a été effectuée uniquement avec uri.path. Je ne l'utilise pas pour définir la requête ... Correctement
response = http.get(uri.request_uri, headers)
Lors de l'incorporation de paramètres dans l'url avec GET, vous devez l'utiliser correctement ...
Dédié chaque jour
Recommended Posts