2013-08-27 61 views
2

我想通過Twitter gem使用Twitter API,並通過omiauth-twitter認證與以前授權登錄的Twitter用戶的oauth token/secret的調用。Twitter的寶石認證錯誤(使用omniauth嘰嘰喳喳令牌/祕密)

通過omniauth-twitter的Twitter用戶身份驗證工作正常。將用戶的令牌和密碼存儲在模型中,數據可通過current_twitter_user用於控制器。

下面的配置(應用程序只認證)工作正常

Twitter.configure do |config| 
    config.consumer_key = YOUR_CONSUMER_KEY 
    config.consumer_secret = YOUR_CONSUMER_SECRET 
    config.oauth_token = YOUR_OAUTH_TOKEN 
    config.oauth_token_secret = YOUR_OAUTH_TOKEN_SECRET 
end 

Twitter.search("something") 

接下來我想用驗證的用戶組oauth_token和oauth_token_secret。

documentation for the Twitter gem我改變了Twitter的初始化器:

Twitter.configure do |config| 
    config.consumer_key = YOUR_CONSUMER_KEY 
    config.consumer_secret = YOUR_CONSUMER_SECRET 
end 

然後,我創建了一個動作,其中包括用於測試目的,下面的代碼:

if current_twitter_user 

    tw_client = Twitter::Client.new(
    :oauth_token  => current_twitter_user.token, 
    :oauth_token_secret => current_twitter_user.secret 
) 

    @first_result = tw_client.search("something").results.first.text 

end 

我的問題:

Twitter搜索調用引發了一個「Twitter :: Error :: Unauthorized」異常。 我檢查了由current_twitter_user提供的令牌和密碼,它們看起來不錯。

任何想法我應該找什麼或我可能做錯了什麼? 非常感謝幫助/想法。

非常感謝, 尤金

寶石使用:

oauth (0.4.7) 
omniauth (1.1.4) 
omniauth-oauth (1.0.1) 
omniauth-twitter (0.0.16) 
twitter (4.8.1) 
+0

您可以隨時嘗試'POST'ing到http://api.twitter.com/oauth/request_token,看看您的憑據是否真的有效。 – varatis

+0

非常感謝 - 我採取了一步,發現它仍然失敗。幸運的是,當我今天早上重新訪問所有參數時,我已經深究了這個問題。愚蠢的我 - 我混淆了推特寶石和omniauth-twitter - aghhhhhh帳戶!將發佈詳細信息 – smile2day

回答

0

我終於發現了問題(一夜的睡眠之後) - 一個愚蠢的配置問題!

Twitter gem從twitter.rb初始化文件中拾取消費者密鑰/祕密對,而omniauth-twitter通過環境獲取它的對(抱歉,由於該部分'工作',未在我的問題中顯示此重要信息)) 。

我混淆了Twitter帳戶,並在消費者關鍵部分使用了兩個不同的Twitter應用程序。 Twitter和omniauth嘰嘰喳喳寶石是在不同的應用程序。這種方法不(也不應該)工作並導致認證失敗。我應該保留消費者的詳細信息幹:)當然:)