Запрос приложения FB указывает на страницу холста вместо вкладки страницы
Я создал приложение на странице Facebook в новом представлении временной шкалы с помощью js sdk, и я использую вызов fb.ui, чтобы использовать селектор с несколькими друзьями, чтобы пригласить своих друзей в приложение. Однако, когда мои друзья нажимают на приглашение, они переходят на версию моей страницы, на которой нет кнопки "Мне нравится".
Снимок экрана, на котором люди видят обычную навигацию по странице (игнорируйте логотип в левом верхнем углу здесь): https://i.imgur.com/R3S3g.jpg
Снимок экрана того, что люди видят, когда связаны через приглашение: https://i.imgur.com/GfXfL.jpg
И я вижу консольную ошибку: "Отказ в отображении документа, потому что отображение запрещено X-Frame-Options".
Любые советы о том, как это исправить?
Спасибо за любую помощь.
Изменить: я обнаружил, что проблема заключается в том, что приглашение направляет людей на URL-адрес холста приложения, а не на вкладку страницы. Есть ли способ связать людей с вкладкой страницы?
Редактировать 2: После исследования и удара головой о клавиатуру я обнаружил, что распространенным решением является перенаправление страницы холста на вкладку страницы (как описано здесь и здесь). Это сработало для меня, но после принятия приглашения приложения пользователю предлагается принять права доступа к приложению, которые не нужны для просмотра приложения, и я остаюсь в Facebook. Я буду обновлять, как я иду.
Редактировать 3: У меня аутентифицированные рефералы включены в настройках приложения. Я тупой Я поставлю ответ, если кто-нибудь погуглит.
2 ответа
Запросы приложений всегда указывают на страницу холста для вашего приложения (поэтому вы должны указать страницу холста в настройках приложения, чтобы запросы работали вообще). Вместо того, чтобы страница холста указывала на то же содержимое, что и вкладка вашей страницы, создайте страницу, которая не делает ничего, кроме перенаправления на URL-адрес вкладки вашей страницы.
Просто поместите что-то вроде этого на страницу URL холста:
<script>
window.top.location.href = 'YOUR PAGE TAB URL HERE';
</script>
Если пользователи видят запросы на разрешение при принятии запросов приложения, это, вероятно, означает, что вы аутентифицировали рефералов, включенных в разделе диалога аутентификации настроек вашего приложения.
Я пытался настроить только это для общих ссылок на шкале времени пользователей. Я немного изменил код, чтобы перенаправлять его только в том случае, если верхнее местоположение не совпадает с URL-адресом страницы Facebook: таким образом, вам не нужно добавлять дополнительную "страницу перенаправления".
if (window.top.location.href != 'YOUR PAGE TAB URL HERE') {
window.top.location.href = 'YOUR PAGE TAB URL HERE';
}