2012-05-21 3 views
1

Я работаю над приложением iframe Facebook. Я использую PHP SDK и JS SDK. В моем индексном файле я вызываю PHP SDK для получения некоторой информации о пользователе. Это включает в себя функцию getUser(), которая всегда работает в индексе.Facebook PHP SDK getUser() возвращает 0 в Safari в Windows

У меня есть еще несколько файлов PHP, которые я использую для заполнения div в индексе, когда пользователь нажимает на определенные ссылки. Я использую FB PHP SDK в каждом из этих файлов, чтобы гарантировать, что пользователь все еще зарегистрирован в FB. То есть, когда эти файлы выполняются, я вызываю функцию getUser(), чтобы получить идентификатор пользователя и определить, находится ли пользователь в состоянии входа. Я вставляю содержимое этих файлов PHP в divs в индексе через функцию load() jQuery ,

Это работает под управлением FFox, Opera, IE и Chrome просто отлично, но при определенных настройках Safari этого не происходит. В частности, у меня были серьезные проблемы с 5.1.5 (7534.55.3). Когда PHP-файлы вызывается функцией загрузки jQuery в этой версии Safari, функция getUser() всегда возвращает 0 (ноль). Я предполагаю, что это связано с кукисами сеанса? Я действительно не знаю и надеялся, что кто-то здесь может пролить свет на это для меня. Спасибо ..

+1

Может ли этот другой вопрос помочь? http://stackoverflow.com/questions/10192142/missing-cookies-on-iframe-in-safari-5-1-5 –

+0

О, боже мой, спасибо! Я понятия не имел, что происходит с Сафари. Если вы хотите получить кредит, не стесняйтесь ответить на этот вопрос. :) – keybored

ответ

0

Не уверен, если это вопрос больше, но это повлияло на мое развитие Safari FB приложение в течение некоторого времени. Проверьте этот ответ SA, чтобы исправить это, я в значительной степени последовал за ним, и это сработало. Missing cookies on iframe in safari 5.1.5

0

Вы можете добавить это на ваш сайт:

<?php 
$uid = $facebook->getUser(); 

if ($uid==0) { 

    $params = array(
     'scope' => 'read_stream, friends_likes', 
     'redirect_uri' => 'https://www.myapp.com/post_login_page' 
    ); 

    $loginUrl = $facebook->getLoginUrl($params); 
    echo '<a href="'.$loginUrl.'">You need first to Login</a>'; 
    exit(); 

} else { 

    //Continue your site code 

} 


?>