これは1日間ありました。RailsからUber APIを呼び出す:{"error": "invalid_client"}
Railsを使用してUber APIを呼び出し、アクセストークンを取得できませんでした。認証コードを取得することはできますが、アクセストークンを交換することはできません。
私はOAuth 2.0の宝石ととせずにしようとした私のすべてのキーが正確であることを確認作りました。 2つの別々のUberアカウントでも試してみました。すべての組み合わせで同じエラーが発生します:{"error": "invalid_client"}
下記の非OAuthコードを送信します。 params[:code]
は、Uberから返された認証コードです。
uri = URI.parse('https://login.uber.com/oauth/v2/token')
https = Net::HTTP.new(uri.host, uri.port)
https.use_ssl = true
headers = {
# authentication content-type is not json
# 'Content-Type' => 'application/x-www-form-urlencoded',
'Authorization' => 'Token ' + @server_token
}
request = Net::HTTP::Post.new(uri.path, headers)
request.set_form_data({
'client_id' => @client_id,
'client_secret' => @client_secret,
'grant_type' => 'authorization_code',
'code' => params[:code]
})
response = https.request(request)
render :json => response.body
ご協力いただきありがとうございます。
'@client_id'と' @client_secret'に正しいデータが含まれていることを確認しましたか? –
@ dan-klassonはい、これらのオブジェクトには適切なデータが含まれています。もう一度ダブルチェックしてください。 – Areios
アップデート:これはカール(https://developer.uber.com/docs/authentication)で自分の鍵と新しく生成された認証コードを手動で送信するときに機能するので、おそらくRailsで何かばかげたことをやっているだけです。 OAuthの新機能 – Areios