Был на этом в течение дня.
Использование Rails для вызова API Uber и невозможность получить токен доступа. Получение кода авторизации работает, а обмен на токен доступа — нет.
Я пробовал с геммом OAuth 2.0 и без него и убедился, что все мои ключи точны. Пробовал и на двух разных аккаунтах 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
содержат правильные данные? - person dan-klasson   schedule 25.04.2016