неинициализированная константа Twitter :: OAuth - PullRequest
0 голосов
/ 03 мая 2011

Я изо всех сил пытаюсь заставить мое приложение отображать временную шкалу каналов из моего приложения. До сих пор я использовал гемы oauth-plugin, oauth и twitter (для rails3) для его авторизации. Это сработало просто отлично.

Теперь я борюсь, когда пытаюсь подключиться.

Я получаю сообщение об ошибке:

uninitialized constant Twitter::OAuth

Проверил, у меня нет другого действия, вызывающего твиттер (как в другом посте здесь). Но пока не повезло.

Надеюсь, кто-то может помочь!

  • Редактировать -

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

require 'twitter'

Но все равно безуспешно ..

- РЕДАКТИРОВАТЬ ВТОРОЙ -

На сайте twitter gem git найдено решение об устаревании этого в версии 1.0.

Теперь я заменил код в моем файле twitter_token.rb на:

def client если @ клиент

  @twitter_oauth=Twitter::Client.new(:TwitterToken.consumer.key,:TwitterToken.consumer.secret)
  @twitter_oauth.authorize_from_access(token,secret)
  @client=Twitter::Base.new(@twitter_oauth)
end

Который избавляется от этой ошибки, но теперь приводит к другой: (* ​​1030 *

undefined method `consumer' for :TwitterToken:Symbol

Я также пробовал это:

 def client
    unless @client
      @twitter_oauth=Twitter::Client.new(:oauth_token =>'TwitterToken.consumer.key', :oauth_token_secret=>'TwitterToken.consumer.secret')
      @twitter_oauth.authorize_from_access token,secret
      @client=Twitter::Base.new(@twitter_oauth)
    end

Что дает следующую ошибку:

undefined method `authorize_from_access' for #<Twitter::Client:0x00000102da1530>

Есть идеи? Я схожу с ума!

1 Ответ

3 голосов
/ 04 мая 2011

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

Использование последней версии твиттера, devise и oauth-plugin. Я видел много ошибок. Последний контроллер twitter_token на сайте oauth-plugin не работает, даже если он был обновлен для недавнего драгоценного камня twitter.

В итоге я удалил весь файл twitter_token.rb и снова начал:

require 'twitter'
class TwitterToken < ConsumerToken
  TWITTER_SETTINGS={:site=>"http://api.twitter.com", :request_endpoint => 'http://api.twitter.com',}
  def self.consumer
    @consumer||=OAuth::Consumer.new credentials[:key],credentials[:secret],TWITTER_SETTINGS
  end

  def client
    Twitter.configure do |config|
      config.consumer_key = TwitterToken.consumer.key
      config.consumer_secret = TwitterToken.consumer.secret
      config.oauth_token = token
      config.oauth_token_secret = secret
    end
    @client ||= Twitter::Client.new
  end
end

Затем вы можете обновить Twitter, используя что-то вроде этого:

<%= current_user.twitter_token.client.update("At last it's working!") %>

Также убедитесь, что вы используете rails3 ветвь oauth-plugin ..

...