Facebook PHP-SDK-Error validating access token
ausgehend von einem thinkdiff.net tutorial ich gebaut habe, eine einfache test-Seite (lokale env), die mit einem facebook-login - /logout-link.Wenn angemeldet ich möchte das echo aus der fb-API Benutzer.
Im mit die neuesten facebook PHP-SDK - (v. 2.1.2).
Scheint es zu funktionieren aber wenn ich logout erhalte ich diese 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] =>
)
dies ist meine Testseite code
$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>";
}
Dank
Luca
InformationsquelleAutor luca | 2011-04-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde versuchen, manuell löschen der session auf logout. Setzen eines GET parameter an die url zurück, oder verwenden Sie eine andere url zurück, und dann dies tun:
Das problem ist, dass der session-cookie bleibt bestehen, auch nachdem der Benutzer abgemeldet wird. Wenn der Benutzer zurück zu Ihrer Seite, die Sie versuchen zu verwenden, dass abgelaufene Sitzung Anfragen zu stellen. Viel Glück.
Das ist ein Jahr alt tutorial, die Plattform hat sich seitdem stark verändert. Verwenden Sie fbml für den logout-button, nicht die PHP-SDK, und fbml ist veraltet jetzt, es ist unzuverlässig. Was ich sagen kann, den code, den Sie schrieb, hier ist dein code, nur basierend auf dem tutorial.
Ok.aber glaubst du, mir wäre der richtige Weg für die Anmeldung in die und aus ein fb-user(Einstellung für die session auf null) oder sollte ich etwas anderes tun?=)
..übrigens, was ist SDK steht für?? =)
Gibt es eigentlich keine richtigen Wege, persönliche Vorlieben und Umstände spielen eine große Rolle. Hier ist eine bessere empfohlenes Lernprogramm für Sie, um loszulegen mit benbiddington.wordpress.com/2010/04/23/...
InformationsquelleAutor DannyKK
Nette Antwort, rufen Sie destroySession (), zuerst bevor
dann könnte man nennen, die getLoginUrl()
$facebook->setSession(null);
Funktioniert nicht mehr. "setSession()" ist keine Methode.InformationsquelleAutor osos