Перенаправление страницы разрешений Facebook 'offline_access'
-
23-09-2019 - |
Вопрос
Я пытаюсь получить разрешение пользователей на 'offline_access' в приложении iFrame Facebook, закодированном с Facebook Java API.Я понимаю, что мне нужно получить "ключ сеанса на неопределенный срок" после того, как пользователи одобрят мою заявку.В настоящее время я могу добиться того, чего хочу, но очень неуклюжим способом, который, вероятно, неверен.Должен быть лучший способ сделать это.Любые мысли / идеи будут оценены по достоинству!!
Что я сделал
В сервлете моего приложения я проверяю, есть ли у пользователя в данный момент разрешение 'offline_access'.Если они это сделают, я получу URL по Permission.authorizeUrl(Permission.OFFLINE_ACCESS)
.Затем я звоню response.redirect
чтобы перейти на страницу разрешений.Две проблемы, с которыми я сталкиваюсь, заключаются в следующем:
- Страница перенаправленных разрешений отображается в iFrame.Следовательно, строка главного меню Facebook book и т.д.отображаются дважды.т. е.похоже, что приложение встроено в другое приложение.
- Пользователь "застрянет" на странице разрешений после перенаправления туда.Я не смогу получить "ключ сеанса на неопределенный срок" (вызвав
client.getCacheSessionKey
) если только пользователь не вернется на страницу в моем приложении вручную.
Возможные обходные пути??
- Есть ли способ открыть / перенаправить на страницу разрешений в новом окне?Таким образом, возможно, у меня сможет быть поток в моем сервлете, который будет продолжать проверять, установлено ли разрешение после перенаправления.И тогда я смогу получить "ключ бессрочного сеанса", как только он у меня будет, и где-нибудь его сохранить?
- Есть ли способ задать URL-адрес Facebook для перехода после установки разрешения?(очень похоже на настройки URL до авторизации и после авторизации?) Или каким-то образом перехватить управление после нажатия на страницу разрешений?
- Может быть, есть какие-нибудь другие способы настроить мое приложение??Будучи новичком, я, возможно, совершенно неправильно понял идею...
Решение
Вы пробовали использовать fb:promot-permission
пометить в XFBML?Казалось бы, это самый простой способ получить разрешение, и XFBML довольно легко настроить.