我有一个应用程序,我收到用户登录的个人信息,我使用读取权限来获取用户的邮件。这很好用!当用户需要发布帖子时,我要求获得发布许可,它也可以正常工作。
将Facebook Android SDK从v3.0.1升级到v3.14.1时遇到问题 请求新的发布权限然后发布与v3.0.1一样好,但是使用v3.14.1我无法更新用户的发布权限。代码如下,有什么变化吗?我在文档上查找它但没有任何线索。
当我在 Session.StatusCallBack 上收到致电事件时:
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权限:[installed,public_profile,email]},appId:1401502483442997}
(#200)用户尚未授权应用程序执行此操作
权限未更新,超过该用户甚至没有看到任何接受它的权限请求。
答案 0 :(得分:0)
我解决了这个问题:在v3.01上我要求" publish_stream"许可,但更多的挖掘出现在v3.14.1我应该使用" publish_actions"权限。