我正在研究一种设置,用户可以选择将他们在我的应用上的帖子自动发布到 Facebook 上。
但是,由于此功能是我的应用程序中的一项设置,因此我需要将“允许权限”逻辑与发生在另一个单独活动上的实际“发出发布请求”分开。
乍一看,我认为我可以将下面的代码块剪切并粘贴到我的活动中,并且假设我的用户已经使用 facebook 登录它会起作用,但显然我还必须实现 uihelpers 和 Session.StatusCallback's 。我需要在请求权限的设置活动中实现哪些额外代码(除了下面的逻辑)?
private void publishStory() {
Session session = Session.getActiveSession();
if (session != null) {
// Check for publish permissions
List<String> permissions = session.getPermissions();
if (!isSubsetOf(PERMISSIONS, permissions)) {
pendingPublishReauthorization = true;
Session.NewPermissionsRequest newPermissionsRequest = new Session
.NewPermissionsRequest(this, PERMISSIONS);
session.requestNewPublishPermissions(newPermissionsRequest);
return;
}
}
}
private boolean isSubsetOf(Collection<String> subset, Collection<String> superset) {
for (String string : subset) {
if (!superset.contains(string)) {
return false;
}
}
return true;
}
}