2014-01-11 4 views
1

Я пытаюсь использовать интерфейс ruby ​​для twitter api. Streaming Api работает, но Rest spi - нет.Ruby's Twitter REST api не работает

Код:

require 'rubygems' 
require 'twitter' 

client = Twitter::REST::Client.new do |config| 
    # you must set up an application using Twitter's developer site, and set these values: 
    # (See the Configuration example) 
    config.consumer_key  = "xxx" 
    config.consumer_secret  = "xxx" 
    config.access_token  = "xxx-xxx" 
    config.access_token_secret = "xxx" 
end 

puts client.user('xyz') 

Я всегда получаю следующее сообщение об ошибке -

Faraday::Builder is now Faraday::RackBuilder. 
/home/atul/.rvm/gems/ruby-2.1.0/gems/twitter-5.5.1/lib/twitter/rest/client.rb:143:in `rescue in request': execution expired (Twitter::Error) 
from /home/atul/.rvm/gems/ruby-2.1.0/gems/twitter-5.5.1/lib/twitter/rest/client.rb:131:in `request' 
from /home/atul/.rvm/gems/ruby-2.1.0/gems/twitter-5.5.1/lib/twitter/rest/client.rb:97:in `get' 
from /home/atul/.rvm/gems/ruby-2.1.0/gems/twitter-5.5.1/lib/twitter/rest/api/utils.rb:118:in `object_from_response' 
from /home/atul/.rvm/gems/ruby-2.1.0/gems/twitter-5.5.1/lib/twitter/rest/api/users.rb:257:in `user' 
from actresses.rb:17:in `<main>' 

Я пытаюсь увеличить время из-за this решения, но я в состоянии понять, как это сделать , Я не понимаю, что я делаю неправильно, поскольку тот же код работает для Streaming api после внесения соответствующих изменений.

+0

@Casey Я попытался добавить твиттер-апи тег, но по каким-то странным причинам я не смог. –

+0

Это сумасшествие - я одобрил редактирование @ jmromer и добавил [tag: twitter-api] вручную, потому что заметил, что он отсутствовал, несмотря на то, что он утверждал, что добавил его в комментарий редактирования. Тег должен быть каким-то образом сломан? – Casey

+1

Кажется, что [tag: twitter-api] задан как синоним [tag: twitter], поэтому он автоматически заменяется ([см. Здесь] (http://stackoverflow.com/tags/twitter/synonyms)). – Casey

ответ

0

Я не совсем ясно, какой вопрос вы имеете, но установить тайм-аут вы можете захотеть попробовать

custom_options = Twitter::Default::CONNECTION_OPTIONS.merge(
          request: { open_timeout: 5, timeout: 20 }) # default timeout is 10 

client = Twitter::REST::Client.new do |config| 
    # you must set up an application using Twitter's developer site, and set these values: 
    # (See the Configuration example) 
    config.consumer_key  = "xxx" 
    config.consumer_secret  = "xxx" 
    config.access_token  = "xxx-xxx" 
    config.access_token_secret = "xxx" 
    config.connection_options = custom_options 
end 

Я не уверен, если это будет решить эту ошибку, хоть.

+0

@ jmromer Привет. Спасибо за ответ. Но это не сработает. Повторите ту же ошибку. Мне надоело сейчас. Все, что мне нужно сделать, это использовать ruby ​​для twitter API и получить учетные записи некоторых пользователей. Мне нужно проверить, проверены ли эти учетные записи или нет. Но я даже не могу использовать API. Я использую ruby ​​1.8.7 и Rails 2.3.14 (если вам нужно знать.). Я пытался это сделать за последние 24 часа :(Я никогда раньше не использовал рубин. Надеюсь, вы понимаете мое разочарование и можете мне помочь. :) –

+0

проблема, похоже, специфична для 1.8.7: http: // j .mp/1haYx1U В вашем случае это может быть излишним, но я бы установил rvm и последнюю версию ruby. – jkrmr

+0

Я только узнал, что потоковый API работает нормально. Я проблема с REST api. –

Смежные вопросы