Подтвердить что ты не робот

Отказ от отображения документа, потому что отображение запрещено с помощью X-Frame-Options

Я создаю приложение Facebook, и я заметил, что при попытке получить статус входа пользователя с помощью Javascript API я иногда получаю сообщение об ошибке:

"Отказано от отображения документа, потому что отображение запрещено с помощью X-Frame-Options."

Я смог воспроизвести это каждый раз, когда я попадал на страницу "проверить статус входа в систему" ​​только при использовании Facebook в качестве страницы, а не в моей учетной записи пользователя. Этого достаточно легко избежать, когда я знаю, что это вызывает проблему, но, очевидно, мои пользователи могут этого не знать.

Есть ли способ определить, использует ли пользователь Facebook в качестве страницы или нет? Поскольку это, похоже, сильно разрушает мое приложение.

4b9b3361

Ответ 1

У меня тоже была эта проблема, исправлено: Приложение перенаправляло пользователя на экран входа в систему из Facebook (диалоговое окно auth), в то время как пользователь уже вошел в систему. Поэтому я изменил код, чтобы перенаправить либо на страницу успеха, если вы вошли в систему, либо в диалоговое окно, если оно не вошло в систему.

Ответ 2

Это проблема, когда facebook перенаправляет ваше приложение из веб-браузера, а затем перенаправляется на вход авторизации facebook. Вы должны убедиться, что форма заменяет страницу и не загружается в холст facebook, как она не нравится.

Итак, вам нужно сделать чистый перенаправление, например, это node example

res.send("<script> top.location.href='"+ "https://www.facebook.com/dialog/oauth?    
client_id=*********&redirect_uri=http://apps.facebook.com/myapp" + "'</script>");

Посмотрите на эту страницу facebook dev и ее на шаге 3

https://developers.facebook.com/docs/howtos/login/server-side-login/

Кажется, что проблема не связана с мобильными приложениями на рабочем столе

Ответ 3

Работает ли этот javascript?

document.write(isFacebookPage()?"YES, I'm in a Facebook Page!":"No, not a Facebook Page");

function isFacebookPage(){
    return (document.location.href.indexOf('/pages/')>0);
}