一个试图申请新的权限具有挂起请求的会话 [英] an attempt was made to request new permissions for a session that has a pending request

查看:127
本文介绍了一个试图申请新的权限具有挂起请求的会话的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是开发与Facebook SDK Android应用程序3.0新的。

hi i'm developing android app with facebook SDK 3.0 new.

我想用户登录后,要求publish_stream的许可。
因此,在onSessionStateChange(),我把我的code哪个请求publsh_stream'许可,但它不能正常工作。

i tried to request 'publish_stream' permission after user login. so, in onSessionStateChange(), i put my code which request 'publsh_stream' permission, but it doesn't work.

这是我的code:

private void onSessionStateChange(Session session, SessionState state, Exception exception) {

    if (state.isOpened()) {

        if (pendingPublishReauthorization &&   state.equals(SessionState.OPENED_TOKEN_UPDATED)) {
            pendingPublishReauthorization = false;
            publishFeed(userName);
        }

        m_pd.show();
        Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {
            @Override
            public void onCompleted(GraphUser user, Response response) {
                if (user != null) {

                    String username=buildUserInfoDisplay(user);
                    userName=username;
                    saveAccount(username, "facebook");

                    Log.d(com.dress.folio.Constants.FACEBOOK_TAG, "login success");
                    //publishFeed(userName);
                    m_pd.dismiss();

                    h.postDelayed(irun, 1000);
                    Activity GetActivity=getActivity();
                    if(GetActivity != null) GetActivity.finish();

                }
            }
        });


        List<String> permissions = session.getPermissions();
        if (!isSubsetOf(PERMISSIONS, permissions) ) {

            pendingPublishReauthorization = true;
            //if(state == SessionState.OPENED_TOKEN_UPDATED) {
                Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(this, PERMISSIONS);
                session.requestNewPublishPermissions(newPermissionsRequest);
            //}

        }



    } else if (state.isClosed()) {
        Log.i(com.dress.folio.Constants.FACEBOOK_TAG, "Logged out..." + exception);
    }
}

在该行session.requestNewPublishPermissions(newPermissionsRequest);,编译器总是说错误,如:一个试图请求新的权限具有挂起的请求的会话

at the line session.requestNewPublishPermissions(newPermissionsRequest);, compiler always say error like: an attempt was made to request new permissions for a session that has a pending request.

我怎么可以要求publish_stream在我的应用程序的用户facekbook SSO登录之后。??

how can i request publish_stream right after user facekbook SSO login in my app.??

推荐答案

我只是面临着同样的问题,上的onActivityResult方法overrided。
因此,请确保呼叫:

I just facing the same issue, the on onActivityResult method was overrided . So make sure calling :

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
   Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);

}

此方法应后调用你的回调。
这里更多的信息(第6部分):<一href=\"https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/\">https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/

This method should call your callback after. More info here (Section 6): https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/

这篇关于一个试图申请新的权限具有挂起请求的会话的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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