Как я могу получить параметры URL запроса, поступающие от обратного вызова из Facebook?
Я использую devise + omniauthable, и все работает отлично. Я просто не знаю, как получить доступ к этим параметрам. Я знаю, что omniauth сохраняет их автоматически, и что я могу получить их, используя request.env['omniauth.origin']
, но где мне сделать этот запрос?
У меня есть сервисный контроллер (class Users::ServicesController < Devise::OmniauthCallbacksController
), который выполняет весь процесс аутентификации с использованием омнигабельных методов (это сделано для нескольких разных провайдеров), и все работает нормально, когда я использую метод регистрации с root-пользователями / callback / Facebook Я могу получить все параметры, которые предоставляет omniauth = request.env['omniauth.auth']
, и сохранить их в базе данных или обновить информацию о пользователях.
Если я также хочу получить доступ к параметрам URL-адреса запроса, поступившим от прямого обратного вызова из Facebook (пользователь принимает Facebook app_request с платформы Facebook), в этом случае Facebook добавляет пользователей / callback / Facebook? request_ids = xv552180 72
Как я могу получить эти request_ids из URL? Я хотел бы использовать его для проверки того, какой запрос был принят (гипотетически у пользователя может быть несколько запросов от других пользователей, но когда он принимает ее, каждый раз принимается только один). Затем я хочу иметь возможность получить request_id и передать его методу, который обновит дружеские отношения для текущего принимающего пользователя и пользователя, отправившего этот запрос, и который был принят только.
Мне нужно сохранить его в базе данных на моем контроллере служб, или я могу получить к нему доступ также на лету сразу после того, как пользователь перенаправил на мое приложение?
На странице omniauth об этом ничего нет.