Android的Facebook的会话问题 [英] Android Facebook session issue
问题描述
我已经使用下列code为Facebook的身份验证,它工作正常,但是当我已经取消了认证,并试图再次验证应用程序崩溃和日志的产生的原因:的Java。 lang.UnsupportedOperationException:会话:一个试图打开一个已经打开的会话
在调试我得到了这样的
{会话状态:创建令牌:{AccessToken令牌:ACCESS_TOKEN_REMOVED权限:[]},APPID:XXXXXXXXXXXXXXX}
我该如何解决这个issue.Please帮助me.Thanks提前
私人无效askFacebbokAuthentication(){
会话会话= Session.getActiveSession();
如果(session.isOpened()){
Facebook的=真;
如果(!hasPublishPermission()){
session.requestNewPublishPermissions(新NewPermissionsRequest(
MyActivity.this,权限));
}
} 其他 {
Session.OpenRequest openRequest = NULL;
openRequest =新Session.OpenRequest(MyActivity.this);
如果(openRequest!= NULL){
openRequest.setDefaultAudience(SessionDefaultAudience.FRIENDS);
如果(!hasPublishPermission()){
openRequest.setPermissions(权限);
}
session.openForPublish(openRequest);
}
}
}
我也有同样的问题,但我解决了这些行。据我所知,我们不能要求一个会话这是已经打开新的权限。
会话的会话=新的Session(本);
Session.setActiveSession(会议);
session.openForRead(新Session.OpenRequest(本).setCallback(回调).setPermissions(Arrays.asList(your_permissions)));
我希望你已经添加以下行 onActivityResult()
Session.getActiveSession()onActivityResult(这一点,要求code,因此code,数据)。
I have used following code for Facebook authentication and it is working fine, but when I have cancelled the authentication and tried to authenticate again the app crashed and the log was Caused by: java.lang.UnsupportedOperationException: Session: an attempt was made to open an already opened session.
On debug I got like this
{Session state:CREATED, token:{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[]}, appId:xxxxxxxxxxxxxxx}
How can I solve this issue.Please help me.Thanks in advance
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);
}
}
}
I too had same problem, but i solved with these lines. To my knowledge we cannot request a session for new permissions which is already opened.
Session session = new Session(this);
Session.setActiveSession(session);
session.openForRead(new Session.OpenRequest(this).setCallback(callback).setPermissions(Arrays.asList("your_permissions")));
I hope you already added below line in onActivityResult()
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
这篇关于Android的Facebook的会话问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!