我已将会话更改为访问令牌,但无法解析getCurrentAccessToken和isOpened的方法

// Fetch Facebook user info if the session is active
        AccessToken token = ParseFacebookUtils.getCurrentAccessToken();
        if (token != null && token.isOpened()) {
            makeMeRequest();
        }


原代码是

   // Fetch Facebook user info if the session is active
        Session session = ParseFacebookUtils.getSession();
        if (session != null && session.isOpened()) {
            makeMeRequest();
        }
    }


最后,我如下进行了编辑。并且应该在ParseFacebookUtils的getSession()处使用?

 // Fetch Facebook user info if the session is active
        AccessToken token = AccessToken.getCurrentAccessToken();
        if (token != null && token.isExpired()) {
           ParseFacebookUtils.logInInBackground(token); makeMeRequest();
        }

最佳答案

使用AccessToken.getCurrentAccessToken(),并检查令牌到期。

AccessToken token = ParseFacebookUtils.getController().getCurrentAccessToken();

if (token != null && !token.isExpired())
{
    // the user is logged-in with valid tocken
}


一次将有一个活动的AccessToken,可以由ParseFacebookUtils库自动设置。因此,您只需检查当前令牌。

这里唯一的问题是ParseFacebookUtils.getController()private,因此只需在Utils类中将其更改为public

 public static FacebookController getController() {
    synchronized (lock) {
      if (controller == null) {
        controller = new FacebookController();
      }
      return controller;
    }
  }

07-27 23:31