/ / Facebook API, приложение Canvas в iFrame, Javascript API, разбито в IE8? - api, facebook, iframe, платно

API на Facebook, приложението Canvas в iFrame, Javascript API, счупено в IE8? - api, facebook, iframe, платно

Опитах се да потърся помощ във форумите на ФБ за това, но те наистина не са много от помощ там.

Приложението ми е настроено като 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 заявка.

ПОВЕДЕНИЕ В СРЕЩЕНО IE Първият сигнал за сесия показва, че сесията енула / неопределено. Разглеждайки заявките, 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? Ако не, какво е по-различно от това, което правя?

Благодаря предварително за съвет.

Отговори:

1 за отговор № 1

Това беше прекъснато и за мен, докато не промених една от разширените настройки. Отиди при твоя раздел за предварително настройване и активирайте опцията „POST for Canvas“. Това предизвика други проблеми, но аз успях да преодолея проблема, който имате.


0 за отговор № 2

Може да нямате инсталиран Flash. Очевидно API на Facebook изисква Flash само за някои версии на IE. При моето тестване открих, че това е истина, връщайки същото съобщение за грешка, което виждате: „Невалиден идентификационен номер на приложението“.

Допълнителна информация:

Интеграция с Facebook Connect: изисква ли флаш?

http://forum.developers.facebook.net/viewtopic.php?id=75095 (последните няколко публикации)