$ Facebook-> getSession ();не работает.Понятия не имею, почему? - PullRequest
0 голосов
/ 27 июня 2010
 <?php

require 'facebook.php';

// Create our Application instance.
$facebook = new Facebook(array(
  'appId'  => '130407366991766',
  'secret' => '****',
  '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');
  } catch (FacebookApiException $e) {
    error_log($e);
  }
}

// login or logout url will be needed depending on current user state.
if ($me) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl();
}

// This call will always work since we are fetching public data.
$naitik = $facebook->api('/naitik');

?>

<code><h1><a href="example.php">php-sdk</a></h1>

<?php if ($me): ?>
<a href="<?php echo $logoutUrl; ?>">
  <img src="http://static.ak.fbcdn.net/rsrc.php/z2Y31/hash/cxrz4k7j.gif">
</a>
<?php else: ?>
<a href="<?=$loginUrl?>">
  <img src="http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif">
</a>
<?php endif ?>

<h3>Session</h3>
<?php if ($me): ?>
<pre><?php print_r($session); ?>

Вы

image/picture">

Ваш пользовательский объект

<?php print_r($me); ?>
Вы не подключены.

Наитик

image

По какой-то причине ... хотя учетная запись, кажется, работает отлично, мой сценарий постоянно говорит: «Вы не подключены».

Я могу толькоПредположим, это проблема с настройкой моего приложения.У кого-нибудь есть идеи?

Демо: http://gua.com/fb-api/

Ответы [ 4 ]

4 голосов
/ 15 декабря 2011

У меня была точно такая же проблема.Все мое приложение было сломано, потому что getSession () больше не работал.

Я скачал последнюю версию PHP SDK и использовал пример для инициализации пользовательского сеанса.

По сути, сеансинициализируется, как только вы создаете объект Facebook.Итак, из кода примера, когда вы звоните.

$facebook = new Facebook(array(
  'appId'  => '191149314281714',
  'secret' => '73b67bf1c825fa47efae70a46c18906b',
));

У вас уже есть сеанс.Чтобы получить идентификатор пользователя, вы просто звоните:

$uid = $facebook->getUser();

Если результатом этого вызова является 0, то пользователь не вошел в систему.

3 голосов
/ 15 декабря 2011

Facebook Измените на OAuth2 и GetSession не работает. Загрузите новые base_facebook.php и facebook.php от разработчиков PHP Sdk и замените процедуру входа на:

if( $userfb = $facebook->getUser() ){ 
   try{
        $UserProfile = $facebook->api('/me');
   }catch (FacebookApiException $e) {
      $userfb      = null;
      $UserProfile = null;
}

Работает ли на моем сайте новая версия не можетпокажи fb: кнопку входа с параметром perms :( и я не могу восстановить

2 голосов
/ 07 июня 2011

Facebook изменил способ вызова API, и старые вызовы REST API устарели.Это означает, что метод getSession () больше не работает.

0 голосов
/ 28 июня 2010

Вам нужно дать ключ API для конструктора.Не идентификатор приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...