2010-04-11 63 views
2

我设法使oauth进程适用于PIN类型的验证。我的Twitter应用程序是客户端类型。当输入授权URL到Web浏览器并授予应用程序访问权限时,我必须在我的ruby应用程序中输入pin。我可以完成获取访问令牌的过程吗?oauth进程的twitter。客户端和Web应用程序之间的区别

  • 我需要做些什么改变才能使它无需工作?
  • 有人能告诉我一般情况下,客户端和Web应用程序有什么不同?我会说,一旦我获得访问令牌,它就是一样的。

我现在的代码是这样的。

gem 'oauth' 
require 'oauth/consumer' 

consumer_key = 'your_key' 
consumer_secret ='your_secret' 

consumer=OAuth::Consumer.new consumer_key, 
          consumer_secret, 
          {:site=>"http://twitter.com"} 
request_token = consumer.get_request_token 

puts request_token.authorize_url 
puts "Hit enter when you have completed authorization." 
pin = STDIN.readline.chomp 

access_token = request_token.get_access_token(:oauth_verifier => pin) 

puts 
puts access_token.token 
puts access_token.secret 

回答

1

你不能跳过PIN(称为验证)一步。

即时客户端授权您的应用程序访问受保护的资源。

您可以保存您的用户复制该号码,在你的应用程序粘贴,如果你能举办一个公开的URL的公共Web应用程序,其中的的OAuth提供可以重定向你,与验证的麻烦PIN作为查询字符串参数。

要做到这一点,你应该传递URLoauth_callback参数,而不是发送oob

编辑:

你可能要检查的规范的相关 部分 - > 6.2.3

+0

这是否意味着该引脚将通过网络传递回调? – Radek 2010-04-11 20:48:57

+0

这是正确的,你会收到它作为一个查询字符串参数称为验证** ** – 2010-04-11 21:05:11

+0

我可以以某种方式捕获,在我的红宝石脚本? – Radek 2010-04-11 21:10:59

相关问题