Android的Facebook的会话问题 [英] Android Facebook session issue

查看:204
本文介绍了Android的Facebook的会话问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经使用下列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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆