API Facebook, приложение Canvas в iFrame, API Javascript, сломанное в IE8? - PullRequest
3 голосов
/ 28 августа 2010

Я пытался искать помощь на форумах FB для этого, но они действительно не сильно помогают там.

Мое приложение настроено как приложение iframe, но такое же поведение происходит, если приложение настроено как приложение fbml и страница ниже загружается через fb: iframe. Такое же поведение существует независимо от того, какие дополнительные параметры используются. Такое же поведение существует с простым FB.init (см. Ниже) или с асинхронным вызовом.

URL моего сайта правильно установлен на http://foo.mysitenamehere.foo/, где находится этот файл.

Это моего приложения прямо сейчас: Код:

<html>
<head>
<script src="http://connect.facebook.net/en_US/all.js"></script>
</head>
<body>
<div id="fb-root"></div>
<script type="text/javascript">
  FB.init({
    appId  : '127717367239744',
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true  // parse XFBML
  });

  alert("FB: " + FB + " FB.getSession(): " + FB.getSession());
  FB.getLoginStatus(function(response) {
      if (response.session) {
        alert("1");
      } else {
        alert("2");
      }
    });
</script>
</body>
</html>

Вот что происходит:

ПОВЕДЕНИЕ В РАБОЧИХ БРАУЗЕРАХ (Firefox, Chrome, Safari PC и Mac, некоторые пользователи IE) Первое предупреждение сеанса и предупреждение «1» появляются во всех этих браузерах. Если я проверю запросы (используя firebug или fiddler2), в каждом работающем браузере, включая IE, когда он работает, запрос к login_status.php - это длинный запрос GET.

ПОВЕДЕНИЕ В СЛОМАННОМ ИЕ Первое оповещение о сеансе показывает, что сеанс имеет значение null / undefined. Глядя на запросы, login_status.php - это POST, а не GET-запрос. Этот POST-запрос обычно имеет длину более 4000 символов. Этот запрос исходит от all.js.

login_status.php возвращает это: Код:

HTTP/1.1 200 OK
Content-Type: text/plain;charset=utf-8
X-Cnection: close
Date: Fri, 27 Aug 2010 20:50:40 GMT
Content-Length: 22

Invalid Application ID

Очевидно, что мой идентификатор приложения действителен (см. 4 других работающих браузера), скорее запрос POST искажен или не принят login_status.php, поэтому ответ завершается ошибкой и приложение не работает в IE.

Это очень тревожный вопрос. Мое приложение не может быть сокращено до более простого примера, и все же оно не работает. Каждое приложение холст iframe демонстрирует такое поведение в IE? Если нет, то что отличается от того, что я делаю?

Заранее спасибо за любые советы.

Ответы [ 2 ]

1 голос
/ 23 декабря 2010

Это было сломано и для меня, пока я не изменил одну из дополнительных настроек.Перейдите на вкладку расширенные настройки и включите опцию «POST for Canvas».Это вызвало другие проблемы, но я смог обойти проблему, с которой вы столкнулись.

0 голосов
/ 21 октября 2010

Возможно, у вас не установлен Flash. Очевидно, что для API Facebook требуется Flash только для некоторых версий IE. В моем тестировании я обнаружил, что это правда, возвращая то же самое сообщение об ошибке: «Неверный идентификатор приложения».

Дополнительная литература:

Интеграция с Facebook Connect: требуется ли прошивка?

http://forum.developers.facebook.net/viewtopic.php?id=75095 (несколько последних сообщений)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...