この質問は、OmniAuthを使用するときにユーザーのFacebookアカウントから必要なアクセスを指定するにはどうすればよいですか?に似ています。ただし、注意が必要です。
OmniAuthを使用して、自分のWebサイトでFacebookユーザーを認証しています。通常のログイン/登録の場合、ユーザーに標準のFacebook権限を要求することは許容されます。しかし、私のサイトには、拡張されたアクセス許可(Facebookの写真へのアクセス)を必要とする機能があります。ユーザーが当サイトのFacebook写真機能を使用する場合、または使用する場合にのみ、ユーザーの拡張アクセス許可を要求したいと思います。
omniauthのFacebook権限を設定する方法について、Webで見つけたすべての回答は、次のように、OmniAuth初期化子にスコープオプションを追加するだけです。
ActionController::Dispatcher.middleware.use OmniAuth::Strategies::Facebook, 'app_id', 'app_secret', {:scope => 'email,offline_access,the,scope,you,want}
ただし、スコープを動的に定義する必要があります。これにより、ユーザーが写真機能を使用する場合にのみ写真のアクセス許可を求められますが、初めてログインまたは登録する場合はそうではありません。
誰もがこれを行う方法を知っていますか?前もって感謝します。