我被困在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的任何帖子在上面的代码中被发送到正确的帐户?
答案 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)