2010-04-11 67 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

相關問題