Rails アプリケーションでは、2 つの異なる目的で Twitter Oauth を 2 回使用する必要があります。1 つ目は一般的なユーザーのサインインです。2 つ目は、ツイートを事前にスケジュールできるようにアカウントを追加するためのものです。例としてフートスイートを考えてみてください。Facebook でログインできるほか、さまざまな Facebook アカウントを接続できます。これには、2 つの個別のコールバックが必要です。
独自の関数でコールバックを作成するには、それぞれ別のコールバック URL を持つ 2 つの異なるアプリケーションを作成するだけでよいと考えました。
ただし、omniauth.rb ファイルでは、twitter プロバイダーに接続する方法は 1 つしかありません。
Rails.application.middleware.use OmniAuth::Builder do
provider :twitter, ENV["TWITTER_KEY"], ENV["TWITTER_SECRET"]
end
次のように繰り返すとうまくいきません:
Rails.application.middleware.use OmniAuth::Builder do
provider :twitter, ENV["TWITTER_KEY"], ENV["TWITTER_SECRET"]
end
Rails.application.middleware.use OmniAuth::Builder do
provider :twitter, ENV["TWITTERUSER_KEY"], ENV["TWITTERUSER_SECRET"]
end
どのコールバックを使用するかを区別する方法がないためです。たとえば、プロバイダーを「:twitter2」にする方法は見つかりませんでした。これは、Omniauth に組み込まれているためです。
同じアプリケーションで複数の Twitter コールバックを使用する解決策を見つけた人はいますか? FacebookやGoogle Plusなど、さまざまな目的で2回使用する必要があるOauthのソリューションを見てうれしい
ありがとう!