0

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

<?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"; 


      } 

?> 
+0

Сбросьте свой секретный ключ в своем приложении сразу! – DMCS

+0

Упс, спасибо, что указали это. –

+0

Также нет необходимости скрывать идентификатор приложения, это общедоступная информация. Это секретный ключ, который нужно защитить :) – DMCS

ответ

0

Попробовать это

<?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 } ?> 
0

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

<?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

Спасибо за ответы. Я пробовал оба mothods, но я все равно получаю тот же результат. Может ли это иметь какое-то отношение к «redirect_uri», поскольку я указываю текущий url с помощью «http://xxx.com/index.php» для входа и выхода из системы? –

+0

Когда я возвращаю echo $ user, он возвращает 0. –

0
$params = array('next' => 'xxx'); 

осуждается SDK, используйте

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

вместо.

Смежные вопросы