所有用户都发布到相同的Twitter帐户而不是他们自己的(rails 3)

时间:2013-04-12 21:16:49

标签: ruby-on-rails ruby ruby-on-rails-3 twitter-oauth

我被困在Twitter宝石实施的最后一步,我一切正常。 除此之外,当用户发布时,所有内容都会被发送到同一个Twitter帐户。

有些用户未使用omniauth进行身份验证,有些用户使用omniauth进行身份验证。 目前,Authentications表中只有一个条目,所有内容都通过这个条目发布到同一个Twitter帐户。

这是代码

class PostsController < ApplicationController
def create
    twitter.update(@post.content)
    redirect_to root_path
end

以下是我的应用程序控制器中定义“twitter”的方法

class ApplicationController < ActionController::Base
def twitter
    unless @twitter_user
      provider = Authentication.find_by_provider('twitter')
      @twitter_user = Twitter::Client.new(:oauth_token => provider.token, :oauth_token_secret => provider.secret) rescue nil
    end
    @twitter_user
  end

如何通过omniauth认证的twitter.update(@post.content)仅发生{{1}}并确保发送到Twitter的任何帖子在上面的代码中被发送到正确的帐户?

1 个答案:

答案 0 :(得分:0)

provider = Authentication.find_by_provider('twitter')

您只是根据提供商“推特”提取Twitter身份验证信息。如果您希望发布到与特定用户相关联的帐户,则需要根据唯一标识用户的内容获取Twitter凭据。

我不知道您的确切模型方案,但在伪代码中它可能看起来像这样:

provider = Authentication.find_by_email(current_user.email)

provider = Authentication.find_by_handle(current_user.handle)