Facebook OAuthException - This authorization code has expired. [code=100]

笑着哭i 提交于 2019-12-11 07:09:52

问题


I have setup the Facebook API SDK for ColdFusion - https://github.com/affinitiz/facebook-cf-sdk

I've setup a login process which works successfully but after 10 minutes or so when I return and refresh the page, it shows the following error:

This authorization code has expired. [code=100]

Is there something I am missing with the FB login? Am I meant to be checking against something manually in order to persist the 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);
       }
   }


回答1:


Apparently you're not exchanging the OAuth code to an Access Token. See the docs here how to do that: Manually Build a Login Flow



来源:https://stackoverflow.com/questions/21741186/facebook-oauthexception-this-authorization-code-has-expired-code-100

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!