0

私は Twitter gem 実装の最後のステップで立ち往生しており、すべてが機能しています。ただし、ユーザーが投稿すると、すべてが同じ 1 つの Twitter アカウントに送信されます。

omn​​iauth を使用して認証されていないユーザーと認証されているユーザーがいます。現時点では、Authentications テーブルには 1 つのエントリしかなく、すべてがこれを介して同じ 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

twitter.update(@post.content)omn​​iauth を介して認証された人に対してのみ発生させ、Twitter に送信された投稿が上記のコードが与えられた正しいアカウントに送信されるようにするにはどうすればよいですか?

4

1 に答える 1

0
provider = Authentication.find_by_provider('twitter')

プロバイダーが「twitter」であることだけに基づいて、Twitter認証情報を引き出しています。特定のユーザーに関連付けられたアカウントに投稿する場合は、ユーザーを一意に識別するものに基づいて Twitter 資格情報を取得する必要があります。

正確なモデルスキームはわかりませんが、疑似コードでは次のようになります。

provider = Authentication.find_by_email(current_user.email)

また

provider = Authentication.find_by_handle(current_user.handle)
于 2013-04-12T23:10:47.070 に答える