Facebook PHP SDK – getLoginUrl() и getLogoutUrl() не работают

Это сводит меня с ума, я не могу понять, почему на этой простой странице могут возникнуть проблемы с входом и выходом из моего приложения?

Ошибка, которую я получаю:

OAuthException: для запроса информации о текущем пользователе необходимо использовать токен активного доступа.

<?php
date_default_timezone_set('America/Denver');
include_once( 'fb-sdk/src/facebook.php');
$appid = '****';
$appsecret = '****';

$facebook = new Facebook(array(
  'appId'  => $appid,
  'secret' => $appsecret,
  'cookie' => true,
));

$logoutUrl = $facebook->getLogoutUrl();

$loginUrl = $facebook->getLoginUrl();

try{
 $user = $facebook->api('/me');
 echo '<h1>HELLO '.$user['full_name'].'</h1>';
}catch(Exception $e){

    echo $e; 
}

    echo '<a href="'.$logoutUrl .'">logout</a> ';

    echo '<a href="'.$loginUrl .'">login</a> ';
?>

person Digi Jeff    schedule 04.02.2012    source источник
comment
URL-адрес для входа отображается правильно?   -  person SoWhat    schedule 04.02.2012


Ответы (3)


Я думаю, вам нужно указать разрешения

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

$loginUrl = $facebook->getLoginUrl($params);
person SoWhat    schedule 04.02.2012
comment
Параметры необязательны, их не обязательно иметь. - person Digi Jeff; 04.02.2012

Удалите echo $e; из своего кода, и он не должен отображать сообщение.

person CoderFromOuterSpace    schedule 04.02.2012
comment
Он отображает ошибку с эхом $ e: OAuthException: активный токен доступа должен использоваться для запроса информации о текущем пользователе. - person Digi Jeff; 04.02.2012
comment
Разве это не означает, что когда вы не можете получить $user, пользователь уже вышел из системы, и вам нужно дать ему кнопку входа? - person CoderFromOuterSpace; 05.02.2012
comment
Это удалит сообщение, но не устранит ошибку. - person SoWhat; 05.02.2012
comment
Я думал, что ваша проблема заключалась в том, что пользователю отображалась ошибка вместе с кнопками входа/выхода? Кнопки не отображаются? Кнопки не работают? - person CoderFromOuterSpace; 05.02.2012

Я нашел решение на http://samoldak.com/index.php/fixing-facebooks-php-sdk-logout/

Вам нужно создать отдельную страницу выхода и вручную завершить сеанс Facebook, связанный с вашим доменом.

person BWelfel    schedule 18.05.2012