私のニーズに合ったソリューションを見つけました:
トークンを更新する代わりに、FQL クエリを作成して、知りたいアクセス許可のリモート (最新) ステータスを取得するだけです
次のコードは、公開権限 (正式には "publish_actions" と呼ばれます) に関するクエリを実行します。
public void asyncQueryIfHasPublishPermissions() {
String fqlQuery = "SELECT publish_actions FROM permissions WHERE uid = me()";
Bundle params = new Bundle();
params.putString("q", fqlQuery);
Session session = Session.getActiveSession();
Request request = new Request(session,
"/fql",
params,
HttpMethod.GET,
new Request.Callback(){
public void onCompleted(Response response) {
JSONObject graphResponse = response.getGraphObject().getInnerJSONObject();
boolean publishPermissions = false;
try {
if (graphResponse.getJSONArray("data").getJSONObject(0).getInt("publish_actions")==1) {
publishPermissions = true;
}
} catch (JSONException e) {
Log.e("FacebookIntegration", "JSON error "+ e.getMessage());
}
FacebookRequestError error = response.getError();
if (error != null) {
Log.e("FacebookIntegration", "FacebookRequestError "+ error.getErrorMessage());
}
Log.i("FacebookIntegration", "asyncQueryIfHasPublishPermissions response: "+publishPermissions);
}
});
Request.executeBatchAsync(request);
}