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

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

«Отказано в отображении документа, поскольку отображение запрещено X-Frame-Options».

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

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


person William Thomas    schedule 28.02.2012    source источник
comment
Можете ли вы подтвердить, что ваш файл channel.htm работает должным образом?   -  person DMCS    schedule 03.03.2012


Ответы (3)


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

person Gerard Nijboer    schedule 03.05.2012
comment
Если он не объяснит, как он это сделал, почему он получает зеленый чек? - person Ian S; 11.02.2015

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

Итак, вам нужно сделать чистую переадресацию, например, это пример узла

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

Посмотрите на эту страницу разработчиков facebook и на шаге 3.

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

Не похоже, что это проблема с мобильными приложениями, только с десктопом.

person Simon Tomlin    schedule 21.02.2013

Этот джаваскрипт работает?

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

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