我已经使用以下代码进行 Facebook 身份验证并且工作正常,但是当我取消身份验证并尝试再次进行身份验证时,应用程序崩溃并且日志由以下原因引起:java.lang.UnsupportedOperationException: session :试图打开一个已经打开的 session 。
在调试时我是这样的
{Session state:CREATED, token:{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[]}, appId:xxxxxxxxxxxxxxx}
我该如何解决这个问题。请帮助我。提前致谢
private void askFacebbokAuthentication() {
Session session = Session.getActiveSession();
if (session.isOpened()) {
facebook = true;
if (!hasPublishPermission()) {
session.requestNewPublishPermissions(new NewPermissionsRequest(
MyActivity.this, PERMISSIONS));
}
} else {
Session.OpenRequest openRequest = null;
openRequest = new Session.OpenRequest(MyActivity.this);
if (openRequest != null) {
openRequest.setDefaultAudience(SessionDefaultAudience.FRIENDS);
if (!hasPublishPermission()) {
openRequest.setPermissions(PERMISSIONS);
}
session.openForPublish(openRequest);
}
}
}
最佳答案
我也有同样的问题,但我用这些线解决了。据我所知,我们不能为已经打开的新权限请求 session 。
Session session = new Session(this);
Session.setActiveSession(session);
session.openForRead(new Session.OpenRequest(this).setCallback(callback).setPermissions(Arrays.asList("your_permissions")));
我希望您已经在 onActivityResult()
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
关于Android Facebook session 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16688235/