【发布时间】:2012-12-04 14:24:31
【问题描述】:
我有一个从证券交易所获取数据的 RoR 网站,我正在通过 Yahoo API 使用 Yahoo 的财务表。我需要授权才能获得对 YQL 的完全访问权限,这需要我使用 Oauth2。我需要帮助以获取对 Yahoo 的 OAuth 访问权限。
这是我尝试过的:
client = OAuth2::Client.new(oauth_consumer_key,oauth_consumer_secret, {
access_token_path: '/oauth/v2/get_token',
authorize_path: '/oauth/v2/request_auth',
authorize_url: 'https://api.login.yahoo.com/oauth/v2/request_auth',
request_token_path: '/oauth/v2/get_request_token',
site: 'https://api.login.yahoo.com'
})
puts client.auth_code.authorize_url( redirect_uri: "http://localhost:3000")
code = gets.chomp
token = client.auth_code.get_token(code, redirect_uri: "http://localhost:3000")
我不知道我必须使用哪个“代码”。 Authorize_url 将这个URL 返回给我,但不清楚“代码”是什么。我受到了Question 的启发。
【问题讨论】:
-
OAuth 分两个步骤工作:1)您像上面那样进行调用,传递您的密钥和秘密,这应该可以让您到达可以放置的位置 2)获取授权令牌。然后在后续的内容请求中使用授权令牌。您指出并使用的示例做出了一些假设。我确信有一些很好的例子来说明如何将 OAuth 与 Yahoo 的 API 结合使用——虽然协议相同,但有许多不同的方法——你需要了解 Yahoo 使用的是哪一种。
-
另外,你没有提到你是否使用了 gem,如果是,是哪一个。
-
我使用“oauth2”gem。我试过这个教程:developer.yahoo.com/oauth/guide/oauth-requesttoken.html,但我不明白“oauth_signature”所以谷歌说我 OAUTH 是更好的解决方案。
-
在此处查看有关如何从 ruby 使用 OAuth 的一些示例:developer.yahoo.com/ruby/#oauth
-
谢谢,但这对我不好,gist.github.com/383159 这没有 OAUTH2 gem。
标签: ruby-on-rails oauth-2.0 yahoo-api