2014-09-29 2 views
1

Устраняем жемчужину Twitter.Twitter и последние твиты Ruby on Rails

В моем Gemfile я поместил

gem 'twitter' 

Я создал инициализатор, twitter_credentials.rb файл, в котором я поместил следующий код:

client = Twitter::REST::Client.new do |config| 
    config.consumer_key = 'foo' 
    config.consumer_secret = 'bar' 
    config.access_token = 'foo' 
    config.access_token_secret = 'bar' 
end 

Теперь я пытаюсь получить доступ к твитам от учетной записи, к которой относятся эти полномочия. Я хотел бы что-то сделать в прикладном контроллере, например:

@tweets = client.tweets 

, но клиент выше приводит к ошибке имени. Как получить доступ к твитам пользователя? Это было

@tweets = Twitter.user_timeline('user_name') 

, но я полагаю, что это было удалено. Пожалуйста, не говорите мне, чтобы я смотрел документацию sferiks, поскольку я смотрел на это, и это не имеет смысла для меня, поскольку клиент. (Что-нибудь) приведет к NameError

Что мне нужно сделать получить список твитов? Спасибо.

ответ

1

У меня была аналогичная проблема несколько месяцев назад. Я считаю, что у вас проблема с объемом. Я поставил звонок, чтобы получить чириканье в том же модуле, что я создал клиент в.

module TwitterApi 

    def get_tweets(twittername) 
    client = Twitter::REST::Client.new do |config| 
     config.consumer_key  = ENV['CONSUMER_KEY'] 
     config.consumer_secret  = ENV['CONSUMER_SECRET'] 
     config.access_token  = ENV['ACCESS_TOKEN'] 
     config.access_token_secret = ENV['ACCESS_TOKEN_SECRET'] 
    end 

    tweets = client.user_timeline(twittername) 
    end 
end 

Таким образом, ваш твиттер вызов будет возвращать массив твит, и вам не придется беспокоиться о проблемах области видимости. В вашем контроллере:

class Foo 
    include TwitterApi 

    def bar 
    @tweets = get_tweets('username') 
    end 
end 

Это сработало для меня. Я надеюсь, что это помогает.

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