У меня проблема с моими приложениями FB в Internet Explorer 7.
Я использую этот фрагмент кода, предоставленный FB некоторое время назад:
$auth_url = "http://www.facebook.com/dialog/oauth?client_id="
. FACEBOOK_APP_ID . "&redirect_uri=" . urlencode(CANVAS_PAGE . 'index.php') . "&scope=user_likes,publish_stream";
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
// If first time we use the application -> ask for permissions
if (empty($data["user_id"]))
{
echo("<script> top.location.href='" . $auth_url . "'</script>");
}
// else display the page code
else
{
}
Используя этот код, страница загружается правильно, но затем, через 1 секунду, она перезагружается и так далее, поэтому ее невозможно использовать.
Раскомментировав строку
echo("<script> top.location.href='" . $auth_url . "'</script>");
проблема решена (кстати, в моем случае код не должен выполнять эту строку... НАСТОЛЬКО странно, что раскомментирование неиспользуемой строки кода решает мою проблему, но все же...)
После прочтения некоторых форумов у меня сложилось впечатление, что эта проблема связана с заголовком P3P. Поэтому я попытался добавить эту строку:
header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');
после тега body. Я также пытался добавить его непосредственно перед тегом body и, наконец, попытался добавить его как метатег:
<meta http-equiv="P3P" content='CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM CURa ADMa PHY ONL COM STA"'>
но ни один из этих трех вариантов не работал у меня, и мое приложение по-прежнему загружается вечно.
Кто-нибудь знает?
Заранее спасибо!
Ну, я прочитал несколько форумов, посвященных той же проблеме:
- http://facebook.stackoverflow.com/questions/5808187/facebook-app-loads-fine-in-firefox-but-keeps-reloading-in-internet-explorer-7-8
- http://facebook.stackoverflow.com/questions/5986373/facebook-app-canvas-page-keeps-refreshing-on-internet-explorer-ie7
но ни одно из этих решений не сработало для меня, у меня все еще есть эта вечная проблема с перезагрузкой страницы.
Я также прочитал форум, который, как я думал, решит мою проблему - http://adamyoung.net/IE-Blocking-iFrame-Cookies - но опять же... не повезло.
Кто-нибудь может мне помочь???
empty
, вы увидите элемент массива с именем user_id, но условие все равно выполняется? И это происходит только в IE? Это действительно кажется невозможным... код, который вы показали, действительно все, что есть? Что изменится, если вы поместите операторexit;
сразу после строкиecho
? - person Floyd Wilburn   schedule 09.11.2011