Запрос приложения 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';
}
Другие вопросы по тегам