Вопрос

Я пытаюсь получить разрешение пользователей на 'offline_access' в приложении iFrame Facebook, закодированном с Facebook Java API.Я понимаю, что мне нужно получить "ключ сеанса на неопределенный срок" после того, как пользователи одобрят мою заявку.В настоящее время я могу добиться того, чего хочу, но очень неуклюжим способом, который, вероятно, неверен.Должен быть лучший способ сделать это.Любые мысли / идеи будут оценены по достоинству!!

Что я сделал

В сервлете моего приложения я проверяю, есть ли у пользователя в данный момент разрешение 'offline_access'.Если они это сделают, я получу URL по Permission.authorizeUrl(Permission.OFFLINE_ACCESS).Затем я звоню response.redirect чтобы перейти на страницу разрешений.Две проблемы, с которыми я сталкиваюсь, заключаются в следующем:

  1. Страница перенаправленных разрешений отображается в iFrame.Следовательно, строка главного меню Facebook book и т.д.отображаются дважды.т. е.похоже, что приложение встроено в другое приложение.
  2. Пользователь "застрянет" на странице разрешений после перенаправления туда.Я не смогу получить "ключ сеанса на неопределенный срок" (вызвав client.getCacheSessionKey) если только пользователь не вернется на страницу в моем приложении вручную.

Возможные обходные пути??

  • Есть ли способ открыть / перенаправить на страницу разрешений в новом окне?Таким образом, возможно, у меня сможет быть поток в моем сервлете, который будет продолжать проверять, установлено ли разрешение после перенаправления.И тогда я смогу получить "ключ бессрочного сеанса", как только он у меня будет, и где-нибудь его сохранить?
  • Есть ли способ задать URL-адрес Facebook для перехода после установки разрешения?(очень похоже на настройки URL до авторизации и после авторизации?) Или каким-то образом перехватить управление после нажатия на страницу разрешений?
  • Может быть, есть какие-нибудь другие способы настроить мое приложение??Будучи новичком, я, возможно, совершенно неправильно понял идею...
Это было полезно?

Решение

Вы пробовали использовать fb:promot-permission пометить в XFBML?Казалось бы, это самый простой способ получить разрешение, и XFBML довольно легко настроить.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top