几天来,我一直在尝试使用 OAuth Ruby gem 从 Withings API 中提取活动数据。不管我尝试什么方法,我总是得到一个 503 错误响应(没有足够的参数),即使我从文档中复制了示例 URI,当然也换掉了用户 ID。过去有没有人有过这种运气。我希望这只是我正在做的愚蠢的事情。
class Withings
API_KEY = 'REMOVED'
API_SECRET = 'REMOVED'
CONFIGURATION = { site: 'https://oauth.withings.com', request_token_path: '/account/request_token',
access_token_path: '/account/access_token', authorize_path: '/account/authorize' }
before do
@consumer = OAuth::Consumer.new API_KEY, API_SECRET, CONFIGURATION
@base_url ||= "#{request.env['rack.url_scheme']}://#{request.env['HTTP_HOST']}#{request.env['SCRIPT_NAME']}"
end
get '/' do
@request_token = @consumer.get_request_token oauth_callback: "#{@base_url}/access_token"
session[:token] = @request_token.token
session[:secret] = @request_token.secret
redirect @request_token.authorize_url
end
get '/access_token' do
@request_token = OAuth::RequestToken.new @consumer, session[:token], session[:secret]
@access_token = @request_token.get_access_token oauth_verifier: params[:oauth_verifier]
session[:token] = @access_token.token
session[:secret] = @access_token.secret
session[:userid] = params[:userid]
redirect "#{@base_url}/activity"
end
get '/activity' do
@access_token = OAuth::AccessToken.new @consumer, session[:token], session[:secret]
response = @access_token.get("http://wbsapi.withings.net/v2/measure?action=getactivity&userid=#{session[:userid]}&startdateymd=2014-01-01&enddateymd=2014-05-09")
JSON.parse(response.body)
end
end
对于其他 API 端点,我收到 247 的错误响应 - 提供的用户 ID 不存在或不正确。这真是令人沮丧。谢谢