2014-02-12 3 views
0

Я настроили API SDK Facebook для ColdFusion - https://github.com/affinitiz/facebook-cf-sdkFacebook OAuthException - этот код авторизации истек. [Код = 100]

Я настроить процесс входа в систему, которая работает успешно, но через 10 минут или около того, когда я вернусь и обновить страницу, она показывает следующее ошибка:

Срок действия этого авторизационного кода истек. [code = 100]

Есть ли что-то, что мне не хватает в FB? Должен ли я проверять что-то вручную, чтобы сохранить сессию?

Cheers

Шон

<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); 
     } 
    } 

+0

Есть ли член 'expires_in' в одном из ответов OAuth? –

+0

Не то, чтобы я заметил. Что странно, но если вы снова обновляете страницу, логин снова активируется. Есть идеи? –

+0

«Код» предполагается использовать один раз, сразу после его получения, чтобы получить токен доступа - вы используете токен доступа для вызова API - пытаетесь ли вы использовать один и тот же код более одного раза? – Igy

ответ