我从 facebook 提供的关于如何向用户请求发布权限的示例中有这段代码(如下),唯一的问题是,当导致 fb 对话框弹出并询问用户“你愿意授予此应用发布权限?” 被称为应用程序继续执行下面的代码(在这种情况下为 asynctask api 请求)这是一个问题 bc fb 并没有真正给我一个布尔值或任何其他方式来检查是否(用户批准了权限请求 && 权限已成功授予){
执行 asynctask api 请求以更新数据库
}
也许我错过了什么或者真的很愚蠢,但这对他们来说不是可怕的实现吗?任何专业的公开使用的api都应该返回一个布尔值、一个字符串……我可以用来创建if语句的东西,这不是很标准吗?!?
private void turnOnFacebookPublishing() {
Session session = Session.getActiveSession();
if (session != null) {
Log.i("sharedprefs fbPublishBool at start of turnOnFbPublish", String.valueOf(sharedprefs.isFacebookPublishingOn()));
// Check for publish permissions
List<String> permissions = session.getPermissions();
Log.i("permissions prior to if", permissions.toString());
if (!isSubsetOf(PERMISSIONS, permissions)) {
pendingPublishReauthorization = true;
Session.NewPermissionsRequest newPermissionsRequest = new Session
.NewPermissionsRequest(this, PERMISSIONS);
session.requestNewPublishPermissions(newPermissionsRequest);
}
// asynctask api request to my api that updates a record on my db that determines a users Facebook publishing preference goes here
}
}