Ruby 如何直接使用oauth gem从twitter检索状态?

Ruby 如何直接使用oauth gem从twitter检索状态?,ruby,twitter,oauth,Ruby,Twitter,Oauth,如何使用gem获取tweet的json 我尝试了以下操作,但始终拒绝访问,即使我知道我的密钥很好: def prepare_access_token(consumer_key, consumer_secret) consumer = OAuth::Consumer.new(consumer_key, consumer_secret, {:site => "https://api.twitter.com"}) consumer.get_request_token.get_acce

如何使用gem获取tweet的json

我尝试了以下操作,但始终拒绝访问,即使我知道我的密钥很好:

def prepare_access_token(consumer_key, consumer_secret)
   consumer = OAuth::Consumer.new(consumer_key, consumer_secret, {:site => "https://api.twitter.com"})
   consumer.get_request_token.get_access_token
end

token = prepare_access_token(twitter_consumer_key, twitter_consumer_secret)
token.request(:get, "https://api.twitter.com/1.1/statuses/show/344726259449860096.json")
我知道推特宝石,但不想因为一些看似简单的东西而依赖它

特别是,以下是401状态的例外情况

consumer.get\u request\u token.get\u access\u token


我做错了什么?

我还没有机会测试这一点,但有一个完全不同的URL用于显示:

获取
https://api.twitter.com/1.1/statuses/show.json?id={id}


我会试试的。

我还没有机会测试这个,但是有一个完全不同的URL来展示:

获取
https://api.twitter.com/1.1/statuses/show.json?id={id}


我想试试。

我不确定你的应用程序流是什么,但我已经通过twitter应用程序登录,以下是我所做的。※此过程为我提供了用户的访问令牌,以便我可以访问其数据

首先,我有一个twitter
应用程序
对象,它请求一个
请求令牌

# defines app's consumer
consumer = OAuth::Consumer.new(consumer_key, 
                               consumer_secret,
                               :site => 'https://api.twitter.com',
                               :authorize_path => '/oauth/authenticate',
                               :sign_in => true)
# get the request_token and pass my callback url
request_token = consumer.get_request_token({:oauth_callback => callback_url})
您需要以某种方式存储请求令牌!请求令牌将为您获取访问令牌,但.get\u request\u token()每次都会生成不同的请求,因此您需要保留原始令牌才能最终获取访问令牌

# setting the src of the login button
link_to 'log via twitter', request_token.authorize_url
用户已登录。
从Twitter上,您可以在url
oauth_令牌
oauth_校验器
中获得两个参数。您将获得在用户登录之前创建的请求令牌,并且由于每次访问都将获得不同的请求令牌,因此需要找到与回调响应匹配的请求令牌

request_token = request_tokens.detect do |rt|
                  rt.token == oauth_token
                end
# let's get the access_token
access_token = request_token.get_access_token(:oauth_verifier => oauth_verifier)
似乎访问令牌与您使用的应用程序链接,因此您必须存储
消费者密钥
消费者密钥
访问令牌.token
访问令牌.secret

关于如何获取追随者数量的示例

json_http_response = access_token.get("http://api.twitter.com/1/users/show.json?user_id=#{twitter_account_id}"))
followers_count = JSON.parse(json_http_response.body)['followers_count']
稍后,如果你想拿回一个访问令牌,你可以这样做

access_token =
  OAuth::AccessToken.from_hash(application_consumer,   # the same as the very top
                               {:oauth_token => token, # access_token.token from above
                                :oauth_token_secret => secret}))  # access_token.secret from above

我不确定你的应用程序流是什么,但我已经通过twitter应用程序登录,以下是我所做的。※此过程为我提供了用户的访问令牌,以便我可以访问其数据

首先,我有一个twitter
应用程序
对象,它请求一个
请求令牌

# defines app's consumer
consumer = OAuth::Consumer.new(consumer_key, 
                               consumer_secret,
                               :site => 'https://api.twitter.com',
                               :authorize_path => '/oauth/authenticate',
                               :sign_in => true)
# get the request_token and pass my callback url
request_token = consumer.get_request_token({:oauth_callback => callback_url})
您需要以某种方式存储请求令牌!请求令牌将为您获取访问令牌,但.get\u request\u token()每次都会生成不同的请求,因此您需要保留原始令牌才能最终获取访问令牌

# setting the src of the login button
link_to 'log via twitter', request_token.authorize_url
用户已登录。
从Twitter上,您可以在url
oauth_令牌
oauth_校验器
中获得两个参数。您将获得在用户登录之前创建的请求令牌,并且由于每次访问都将获得不同的请求令牌,因此需要找到与回调响应匹配的请求令牌

request_token = request_tokens.detect do |rt|
                  rt.token == oauth_token
                end
# let's get the access_token
access_token = request_token.get_access_token(:oauth_verifier => oauth_verifier)
似乎访问令牌与您使用的应用程序链接,因此您必须存储
消费者密钥
消费者密钥
访问令牌.token
访问令牌.secret

关于如何获取追随者数量的示例

json_http_response = access_token.get("http://api.twitter.com/1/users/show.json?user_id=#{twitter_account_id}"))
followers_count = JSON.parse(json_http_response.body)['followers_count']
稍后,如果你想拿回一个访问令牌,你可以这样做

access_token =
  OAuth::AccessToken.from_hash(application_consumer,   # the same as the very top
                               {:oauth_token => token, # access_token.token from above
                                :oauth_token_secret => secret}))  # access_token.secret from above

在那之前我有点困了。。。我甚至无法从请求令牌中获取访问令牌:(抱歉,伙计,我已经发誓退出Twitter API。在此之前我有点卡住了……我甚至无法从请求令牌中获取访问令牌:(对不起,伙计,我已经发誓不再使用Twitter API。你的过程中没有登录步骤吗?我想你需要一个
oauth\u验证器来获取访问令牌。可能,oauth对我来说是巫毒,这个示例对我来说也失败了。你的过程中没有登录步骤吗?我想你需要一个
oauth\u验证器来获取访问令牌。可能,oauth对我来说是巫毒,这个示例对我来说也失败了是的,我昨天发现了很多混乱,我真的想避免使用那些我更喜欢的auth_令牌,因为这样我们的管理员只需要添加客户端令牌。我有点卡住了,需要转到ethereal看看网络中发生了什么是的,我发现了很多在昨天的混乱中,我真的很想避免使用那些我更喜欢的auth_令牌,因为这样我们的管理员只需要添加客户端令牌。我有点卡住了,需要转到ethereal看看网络中发生了什么