Для вызова Facebook API внутри приложения FB требуется логин (только в IE)

#javascript #html #facebook #graph

#javascript #HTML #Facebook #График

Вопрос:

я создал приложение FB, которое показывает предстоящие события общедоступной страницы. я использую следующий javascript:

 <script src="https://connect.facebook.net/en_US/all.js"></script>
...
FB.init({
    appId  : {APP_ID},
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true  // parse XFBML
});

FB.api('/{page_id}/events?since=today', function(response) {
    ...
});
  

код отлично работает в Chrome и Firefox (хотя только при загрузке на сервер и выполнении внутри FB (https://apps.facebook.com /{app_name} /), не локальный или при вызове непосредственно с сервера хостинга) но при запуске в IE я получаю эту ошибку:

 {
   "error": {
      "type": "OAuthAccessTokenException",
      "message": "An access token is required to request this resource."
   }
}
  

я не понимаю, почему пользователь должен входить в систему, поскольку приложение в любом случае уже запущено внутри FB. есть идеи?

спасибо, Саймон

Ответ №1:

Поскольку приложение facebook запускается в iframe, вам следует настроить политику p3p, чтобы разрешить запуск ie, поместите этот код в свой Global.asax (при условии, что вы на asp.net ):

 protected void Application_BeginRequest(Object sender, EventArgs e)
{

    HttpContext.Current.Response.AddHeader("p3p", "CP="CAO PSA OUR"");

}