facebook connect: сеанс журналов javascript, но php нет

У меня был пример реализации входа в facebook, и я только что понял, что он перестал работать:

 <?php
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
  'appId'  => 'myappid',
  'secret' => 'mybigsecreet',
  'cookie' => true,
));

// We may or may not have this data based on a $_GET or $_COOKIE based session.
//
// If we get a session here, it means we found a correctly signed session using
// the Application Secret only Facebook and the Application know. We dont know
// if it is still valid until we make an API call using the session. A session
// can become invalid if it has already expired (should not be getting the
// session back in this case) or if the user logged out of Facebook.
$session = $facebook->getSession();

$me = null;
// Session based API call.
if ($session) {
  try {
    $uid = $facebook->getUser();
    $me = $facebook->api('/me');

        $r = new registro_usuarios();
        $r->facebook($uid,$me['name'],'https://graph.facebook.com/'.$me['id'].'/picture');

        echo '----------------------------'.$me;
  } catch (FacebookApiException $e) {
    error_log($e);
    echo '----------------------------'.$e;
  }
}else echo 'nosession';
echo $session;

печатает nosesion, но когда я нажимаю кнопку входа (facebook), журналы firebug: FB.login() called when user is already connected. и всплывающее окно входа (facebook) не открывается.

Что мне не хватает? Через год facebook-api устарел??


person Toni Michel Caubet    schedule 07.03.2012    source источник


Ответы (3)


$facebook->getSession() больше не работает. Вот почему он может выходить из 1-го цикла if.

$session = $facebook->getSession();

$session всегда имеет значение null.

Вы можете проверить вид с помощью $facebook->getUser(), если он дает 0, то активного сеанса нет, иначе вы получите идентификатор facebook пользователя сеанса.

См. эти ссылки, которые также могут получить дополнительную информацию:

person Somnath Muluk    schedule 23.03.2012
comment
большое спасибо. постараюсь и дам вам знать. разве они не должны переназначить эти функции? - person Toni Michel Caubet; 23.03.2012
comment
Вы можете проверить сеанс, представленный $facebook->getUser(). Если он дает 0, то нет активного сеанса. Вот почему функция $facebook->getSession() устарела. Нет необходимости сопоставлять функцию с другой. - person Somnath Muluk; 23.03.2012
comment
Вы получаете результат для $facebook->getUser() или нет? - person Somnath Muluk; 23.03.2012
comment
Я изменил if ($session) ---› if ($facebook-›getUser()›0) и результат тот же :( - person Toni Michel Caubet; 23.03.2012
comment
Какую версию php-sdk вы используете? - person Somnath Muluk; 23.03.2012
comment
давайте продолжим обсуждение в чате - person Somnath Muluk; 23.03.2012


С 1 октября аутентификация OAuth 2.0 является обязательной (см. дорожную карту изменений здесь: https://developers.facebook.com/roadmap/completed-changes/), и вы должны изменить некоторые функции, которые больше не поддерживаются.

Вы можете ознакомиться с новой документацией по php здесь: https://developers.facebook.com/docs/reference/php/

И документация по аутентификации: https://developers.facebook.com/docs/authentication/

person Juanmi Rodriguez    schedule 22.03.2012