当我尝试查询 facebook 时,我收到以下异常:“必须使用活动访问令牌来查询有关当前用户的信息。”
这是请求:
AccessToken accessToken = AccessToken.getCurrentAccessToken();
GraphRequest request = GraphRequest.newMeRequest(
accessToken,
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
FacebookRequestError responseError = response.getError();
if(responseError != null){
if(responseError.getCategory().equals(FacebookRequestError.Category.LOGIN_RECOVERABLE)){
LoginManager.getInstance().resolveError(MainActivity.this, response);
} else {
Toast.makeText(MainActivity.this, getString(R.string.facebookError), Toast.LENGTH_LONG).show();
Log.e(TAG, Helper.isFacebookLogin() + "");
return;
}
} else {
try {
Log.e(TAG + " newMeRequest id", object.getString("id"));
} catch (JSONException e) {
Log.e(TAG + " newMeRequest JSONerror", e.getMessage());
}
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,gender");
request.setParameters(parameters);
reques
t.executeAsync();
Helper.isFacebookLogin() 是:
public static boolean isFacebookLogin(){
return accessToken != null && !accessToken.isExpired();
}
并返回true
。
如果它返回 true,为什么我会收到错误消息?