Аутентификация с помощью PHP SDK - PullRequest
0 голосов
/ 26 января 2012

У меня проблемы с использованием PHP SDK для аутентификации. Эффект, который я пытаюсь получить, заключается в том, что когда пользователь заходит на сайт, если он вошел в систему с помощью FB, он видит «Выход из системы», который выводит их из системы при нажатии, но если они не входят в систему, когда приходят, они должны видеть «Вам необходимо войти с помощью FB », который регистрирует их. Эффект, который я получаю в настоящее время, заключается в том, что на сайте отображается сообщение« Вам необходимо войти в систему с помощью FB », даже если пользователь уже вошел в систему, и при нажатии на него пользователь попадает на Facebook. com с отображенным сообщением об ошибке «Произошла ошибка. Пожалуйста, попробуйте позже». Я уверен, что я что-то упустил в своем коде, но не могу понять, что, я довольно новичок в разработке FB. Пожалуйста, смотрите мой код ниже. Любая помощь очень ценится.

<?php

require_once("facebook.php");


$user = $facebook->getUser();



  $config = array();
  $config[‘appId’] = xxx;
  $config[‘secret’] = '{secret}';

  $facebook = new Facebook($config);



$fbparams = array(
  'scope' => 'read_stream, friends_likes',
  'redirect_uri' => 'xxx'
);



session_start();



$loginUrl = $facebook->getLoginUrl($fbparams);
$params = array( 'next' => 'xxx' );
$logoutUrl = $facebook->getLogoutUrl($params); 




    if(!$user)
        {
            echo "<P>You need to <a href=\"{$loginUrl}\">log into FB</a></p>\n";
        }
    else
        {
            echo "<p style=\"margin-bottom:20px;\"><a href=\"{$logoutUrl}    \">Logout</p>\n";


            }

?>

Ответы [ 3 ]

0 голосов
/ 27 января 2012

Вы не можете позвонить в Facebook до создания экземпляра, этот код должен работать:

<?php
session_start();
require_once("facebook.php");

$config = array();
$config[‘appId’] = xxx;
$config[‘secret’] = '{secret}';

$facebook = new Facebook($config);
$user = $facebook->getUser();


$fbparams = array(
'scope' => 'read_stream, friends_likes',
'redirect_uri' => 'xxx'
);

$loginUrl = $facebook->getLoginUrl($fbparams);
$params = array( 'next' => 'xxx' );
$logoutUrl = $facebook->getLogoutUrl($params); 

if(!$user)
    {
        echo "<P>You need to <a href=\"{$loginUrl}\">log into FB</a></p>\n";
    }
else
    {
        echo "<p style=\"margin-bottom:20px;\"><a href=\"{$logoutUrl} }\">Logout</p>\n";


        }

?>
0 голосов
/ 17 января 2013
$params = array( 'next' => 'xxx' );

устарел SDK, используйте

$params = array( 'redirect_uri' => 'xxx' );

.

0 голосов
/ 26 января 2012

Попробуйте это

<?php

require_once("facebook.php");
$user = $facebook->getUser();

$config = array();
$config[‘appId’] = xxx;
$config[‘secret’] = '{secret}';

$facebook = new Facebook($config);

$fbparams = array(
'scope' => 'read_stream, friends_likes',
'redirect_uri' => 'xxx'
);

$loginUrl = $facebook->getLoginUrl($fbparams);
$params = array( 'next' => 'xxx' );
$logoutUrl = $facebook->getLogoutUrl($params); 

<?php if ($user) { ?>
<p><a href="<?=$logoutUrl?>">Logout</a></p>
<?php } else { ?>
  <p><a href="<?=$loginUrl?>">Click here to View Your Stalker of the Day</a></p>
<?php } ?>
...