【发布时间】:2013-08-30 15:02:18
【问题描述】:
我正在尝试通过 Twitter gem 使用 Twitter API,并使用之前通过 omniauth-twitter 授权的登录 Twitter 用户的 oauth 令牌/秘密对调用进行身份验证。
通过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)
【问题讨论】:
-
您可以随时尝试
POSTing 到 api.twitter.com/oauth/request_token 以查看您的凭据是否真的有效。 -
非常感谢 - 我迈出了这一步,发现它仍然失败。幸运的是,当我今天早上重新审视所有参数时,我找到了问题的根源。愚蠢的我——我把 Twitter gem 和omniauth-twitter 的账户搞混了——啊啊啊啊!将发布详细信息
标签: ruby-on-rails twitter omniauth