Facebook OAuthException - Dieser auth-code ist abgelaufen. [code=100]
Ich habe setup die Facebook-API-SDK für ColdFusion - https://github.com/affinitiz/facebook-cf-sdk
Ich habe setup ein login-Prozess erfolgreich funktioniert, aber nach 10 Minuten oder so, wenn ich zurückkehren und die Seite aktualisieren, zeigt es die folgende Fehlermeldung:
Dieser auth-code ist abgelaufen. [code=100]
Gibt es etwas, was ich bin fehlt mit das FB login? Soll ich die überprüfung gegen etwas manuell, um zur Speicherung der session?
Cheers
Shaun
<cfscript>
import facebook.sdk.FacebookApp;
import facebook.sdk.FacebookGraphAPI;
//Replace this with your appId and secret
APP_ID = "";
SECRET_KEY = "";
SCOPE = "publish_stream";
if (APP_ID is "" or SECRET_KEY is "") {
//App not configured
facebookGraphAPI = new FacebookGraphAPI();
} else {
//Create facebookApp instance
facebookApp = new FacebookApp(appId=APP_ID, secretKey=SECRET_KEY);
//See if there is a user from a cookie or session
userId = facebookApp.getUserId();
if (userId) {
try {
userAccessToken = facebookApp.getUserAccessToken();
facebookGraphAPI = new FacebookGraphAPI(accessToken=userAccessToken, appId=APP_ID);
userObject = facebookGraphAPI.getObject(id=userId);
userFriends = facebookGraphAPI.getConnections(id=userId, type='friends', limit=10);
authenticated = true;
} catch (any exception) {
//Usually an invalid session (OAuthInvalidTokenException), for example if the user logged out from facebook.com
//this is where the error occurs
userId = 0;
facebookGraphAPI = new FacebookGraphAPI();
}
} else {
facebookGraphAPI = new FacebookGraphAPI();
}
//Login or logout url will be needed depending on current user state.
if (userId) {
logoutUrl = facebookApp.getLogoutUrl();
} else {
parameters = {scope=SCOPE};
loginUrl = facebookApp.getLoginUrl(parameters);
}
}
- Gibt es eine
expires_in
Mitglied in einem der OAuth Antworten? - Nicht, dass ich mitbekommen habe. Was ist komisch ist aber, wenn Sie aktualisieren Sie die Seite erneut, wird der login scheint wieder aktiv zu werden. Irgendwelche Ideen?
- Die
code
verwendet werden soll, einmal, sofort nachdem Sie es erhalten, um zu erhalten ein access - token verwenden Sie das access-token zum Aufruf der API - sind Sie versuchen, verwenden Sie den gleichen code mehr als einmal? - Igy - ich habe den code Hinzugefügt, die ich verwende. Die access_token gespeichert ist, in eine session-variable aus, was ich sehen kann im SDK verwendet wird.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Offenbar sind Sie nicht der Austausch der OAuth-code, um eine Access-Token. Siehe die Dokumentation hier, wie das geht: Manuell Erstellen eine Login-Flow