0

アプリからのフィードのタイムラインをアプリに表示させるのに苦労しています。これまで、oauth-plugin、oauth、およびtwitter gem(rails3用)を使用して、承認を得てきました。これはうまくいきました。

今、接続しようとすると苦労しています。

エラーが発生します:

uninitialized constant Twitter::OAuth

Twitterを呼び出す別のアクションがないことを確認しました(ここの別の投稿のように)。しかし、これまでのところ、運はありません。

誰かが助けてくれることを願っています!

  • 編集 -

Deviseを使用してユーザーを認証していることを忘れました。挿入してみました:

require 'twitter'

しかし、それでも成功しません。

--2つ編集-

バージョン1.0でこれを減価償却することについて、Twittergemgitサイトで解決策を見つけました。

twitter_token.rbファイルのコードを次のように置き換えました。

@clientでない限りdefクライアント

  @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

これはそのエラーを取り除きますが、今は別のエラーにつながります:(

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>

何か案は?私は正気を失います!

4

1 に答える 1

3

ここで私自身の質問に答えます。1 人の人の役に立てば、私が 3 日間無駄にしたことを考えると、それだけの価値があります。

最新の Twitter gem、devise、oauth-plugin を使用します。私は多くのエラーを見ていました。最近の twitter gem 用に更新されているにもかかわらず、oauth-plugin サイトの最新の twitter_token コントローラーが機能しません。

最後に、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!") %>

また、oauth-plugin の rails3 ブランチを使用していることを確認してください。

于 2011-05-04T09:26:57.677 に答える