Facebook SDK PHP Erreur de validation jeton d'accès
à partir d'un thinkdiff.net tutoriel j'ai construit une simple page de test (local env) avec un facebook lien de connexion/déconnexion.Si vous êtes connecté en je veux echo le fb de l'utilisateur de l'API.
Im en utilisant la dernière facebook SDK PHP (v. 2.1.2).
Il semble fonctionner mais quand je déconnexion-je recevoir cette exception:
FacebookApiException Object
(
[result:protected] => Array
(
[error] => Array
(
[type] => OAuthException
[message] => Error validating access token: The session is invalid because the user logged out or because auth.expireSession was invoked.
)
)
[message:protected] => Error validating access token: The session is invalid because the user logged out or because auth.expireSession was invoked.
[string:Exception:private] =>
[code:protected] => 0
[file:protected] => C:\wamp\www\fb\facebook.php
[line:protected] => 543
[trace:Exception:private] => Array
(
[0] => Array
(
[function] => _graph
[class] => Facebook
[type] => ->
[args] => Array
(
[0] => /me
)
)
[1] => Array
(
[file] => C:\wamp\www\fb\facebook.php
[line] => 492
[function] => call_user_func_array
[args] => Array
(
[0] => Array
(
[0] => Facebook Object
(
[appId:protected] => 1819654718*****
[apiSecret:protected] => a2fccb8e93638b50c8d6b2**********
[session:protected] =>
[signedRequest:protected] =>
[sessionLoaded:protected] => 1
[cookieSupport:protected] => 1
[baseDomain:protected] =>
[fileUploadSupport:protected] =>
)
[1] => _graph
)
[1] => Array
(
[0] => /me
)
)
)
[2] => Array
(
[file] => C:\wamp\www\fb\fb.php
[line] => 33
[function] => api
[class] => Facebook
[type] => ->
[args] => Array
(
[0] => /me
)
)
)
[previous:Exception:private] =>
)
c'est mon test de code de la page
$fbconfig['appid'] = "18196**********";
$fbconfig['api'] = "5c6910be575e4e688ac6d**********";
$fbconfig['secret'] = "a2fccb8e93638b50c8d6b2**********";
try
{
include_once "facebook.php";
}
catch(Exception $o)
{
echo '<pre>';
print_r($o);
echo '</pre>';
}
//Create our Application instance.
$facebook = new Facebook(array('appId' => $fbconfig['appid'],'secret' => $fbconfig['secret'],'cookie' => true));
$session = $facebook->getSession();
$fbme = null;
//Session based graph API call.
if (!empty($session))
{
d($session);
try
{
$uid = $facebook->getUser();
$fbme = $facebook->api('/me');
}
catch (FacebookApiException $e)
{
d($e);
}
}
function d($d)
{
echo '<pre>';
print_r($d);
echo '</pre>';
}
if ($fbme)
{
$logoutUrl = $facebook->getLogoutUrl();
echo"<a href='{$logoutUrl}'>logout</a>";
d($fbme);
}
else
{
$loginUrl = $facebook->getLoginUrl(array('req_perms' => 'email,read_stream,user_birthday'));
echo"<a href='{$loginUrl}'>login</a>";
}
grâce
Luca
OriginalL'auteur luca | 2011-04-30
Vous devez vous connecter pour publier un commentaire.
Je voudrais essayer manuellement de compensation de la session lors de la déconnexion. Mettre un paramètre GET sur l'url de retour, ou utilisez une url de retour, et ensuite ce faire:
Le problème est que le cookie de session persiste même après que l'utilisateur est déconnecté. Lorsque l'utilisateur retourne sur votre page que vous essayez d'utiliser l'expiration de la session pour faire des demandes. Bonne chance.
C'est d'un an tutoriel, la plate-forme a beaucoup changé depuis. Ils utilisent fbml pour le bouton de déconnexion, pas le SDK PHP, et fbml est obsolète maintenant, c'est pas fiable. À partir de ce que je peux dire le code que vous avez écrit ici est votre code, uniquement basé sur le tutoriel.
Ok.mais vous pensez que le mien serait le bon moyen de connexion et un fb de l'utilisateur(réglage de la session null) ou je dois faire autre chose?=)
..par la façon qu'est-ce que le SDK debout?? =)
Il n'y a vraiment pas de bonne façon, les préférences personnelles et les circonstances jouent un grand rôle. Voici une meilleure recommandés tutoriel pour vous obtenir a commencé avec benbiddington.wordpress.com/2010/04/23/...
OriginalL'auteur DannyKK
Belle réponse, Vous devez appeler destroySession() tout d'abord avant de
vous pouvez ensuite appeler la getLoginUrl()
$facebook->setSession(null);
Ne fonctionne plus. "setSession()" n'est pas une méthode.OriginalL'auteur osos