【发布时间】:2014-07-26 14:15:22
【问题描述】:
我有一个应用程序,我接收用户的个人信息以登录,并且我使用读取权限来获取用户的邮件。这很好用!当用户需要发布帖子时,我会请求发布权限,并且效果也很好。
在将 Facebook Android SDK 从 v3.0.1 升级到 v3.14.1 时遇到问题 使用 v3.0.1 请求新的发布权限然后发布就可以了,但使用 v3.14.1 我无法更新用户的发布权限。代码如下,有什么变化吗?我在文档中查找了它,但没有任何线索。
当我在 Session.StatusCallBack 上收到 call 事件时:
if (session != null) {
LogUtils.LogI(FacebookHelper.class, session.toString());
if (session.isOpened()) {
CheckForPublish(context, session, listener);
} else if (session.isClosed()) {
// Logout successful
listener.onLogoutSucceed();
}
} else {
LogUtils.LogI(FacebookHelper.class, "session is null");
listener.noSession();
}
if (exception != null) {
if (exception.getClass().getSimpleName()
.equals("FacebookOperationCanceledException")) {
listener.onLoginCanceled();
} else {
listener.onError(null);
}
}
而CheckForPublish方法是:
if (!session.getPermissions().contains(listener.getPublishPermission()[0])) {
LogUtils.LogI("Asking for publish permission...");
Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(activity, listener.getPublishPermissionAsList());
session.requestNewPublishPermissions(newPermissionsRequest);
} else {
// Login successful,
listener.onLoginSucceed();
}
而logcat的输出是这样的:
请求发布许可...
会话{会话状态:OPENED_TOKEN_UPDATED,令牌:{AccessToken 令牌:ACCESS_TOKEN_REMOVED 权限:[已安装,public_profile,电子邮件]},appId:1401502483442997}
(#200) 用户未授权应用执行此操作
权限没有更新,比那个用户甚至没有看到任何接受它的权限请求。
【问题讨论】:
标签: android facebook facebook-graph-api android-facebook