我设法让oauth流程适用于PIN类型的验证。我的Twitter应用程序是客户端类型。当在网络浏览器中输入授权URL并授予应用程序访问权限时,我必须在我的ruby应用程序中输入pin。我可以在没有针脚的情况下完成获取访问令牌的过程吗?
我目前的代码就像。
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
答案 0 :(得分:1)
您无法跳过PIN(称为验证程序)步骤。
当客户授权您的应用访问受保护资源时。
如果您可以托管显示 OAuth提供商可以将您重定向到的网址的公共网络应用程序,则可以为用户节省复制该数字并将其粘贴到应用程序中的麻烦。 验证程序或 PIN 作为查询字符串参数。
为此,您应该在oauth_callback
参数中传递网址,而不是发送oob
编辑:
您可能需要检查相关内容 规范的一部分 - > 6.2.3