Я свел свою страницу к самой простой вещи, и она все еще не работает в IE8.
Вот вся HTML-страница:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en">
<head></head>
<body>
<div id="fb-root"></div>
<fb:login-button></fb:login-button>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({appId: 'd663755ef4dd07c246e047ea97b44d6a', status: true, cookie: true, xfbml: true});
FB.Event.subscribe('auth.sessionChange', function(response) {
alert(JSON.stringify(response));
});
FB.getLoginStatus(function (response) { alert(JSON.stringify(response)); });
</script>
</body>
</html>
В Firefox, Safari и Chrome (на Mac) я получаю ожидаемое поведение: если я не вошел в Facebook, при загрузке страницы появляется диалог с пустой сессией. Когда я нажимаю кнопку «Вход» и регистрируюсь, я получаю второй диалог с сеансом. Если я вошел в Facebook, я получаю два диалога с сессиями: один из вызова getLoginStatus, а другой из события.
В IE8 я не получаю диалогов при загрузке страницы. Обратный вызов getLoginStatus не вызывается. Когда я нажимаю кнопку «Вход», я получаю диалоговое окно, но в нем есть очень странная ошибка:
Неверный аргумент
междоменный домен Facebook Connect
URL получателя
(http://static.ak.fbcdn.net/connect/xd_proxy.php#?=&cb=f3e91da434653f2&origin=http%3A%2F%2Fmysiteurl.com%2Ff210cba91f2a6d4&relation=opener&transport=flash&frame=f27aa957225164&result=xxRESULTTOKENxx)
должен иметь приложение Connect
URL (http://mysiteurl.com/) как
префикс. Вы можете настроить подключение
URL в настройках приложения
Редактор.
Я очистил URL-адрес подключения выше, но это правильно.
В диалоговом окне есть поля с именем пользователя и паролем. Если я вхожу в систему, диалоговое окно перенаправляется на мой URL-адрес Connect, но нет файла fb cookie, поэтому, конечно, ничего не работает.
Что я здесь не так делаю?
Обновление (10 сентября 2010 г.):
Эта проблема не универсальна. URL моего сайта содержит номер порта,
потому что это мой тестовый сайт: http://mysiteurl.com:12345. без порта
число, т.е. 8, кажется, в порядке. С номером порта он продолжает
потерпеть неудачу, как это было раньше. Тем не менее, сообщение об ошибке теперь более кратко:
Неверный аргумент
Данный URL не разрешен конфигурацией приложения
Кроме того, эта проблема специфична для IE (на самом деле, я подозреваю, что она специфична для транспорта Flash XD, но я не знаю, как это подтвердить). Он отлично работает на любой другой паре платформа / браузер, которую я пробовал.
Я все еще не близок к тому, чтобы сделать эту работу с URL-адресом с номером порта.