得到“FacebookAuthorizationException:用户登录为不同的Facebook用户”例外 - 同时更新以获得新的权限

时间:2013-07-05 20:17:14

标签: facebook facebook-android-sdk android-facebook

我收到FacebookAuthorizationException:用户以不同的Facebook用户身份登录,同时尝试更新发布权限,我的代码如下所示

onCreate(...) {
  connectFacebookAccount();
}//oncreate

private void connectFacebookAccount() {
    settings = getSharedPreferences("PREF_NAME",MODE_PRIVATE);
    String FbExperi = settings.getString("FB_AccessExpires, null);
    String accesstoken = settings.getString(FB_AccessToken, null);

    if (accesstoken != null) {
        // open a session from the access token info
        // saved in the app's shared preferences

        Date date = null;
        try {
            date = (Date) new SimpleDateFormat("MMMM d, yyyy",
                    Locale.ENGLISH).parse(FbExperi);
        } catch (ParseException e) {
            e.printStackTrace();

        }

        AccessToken accessToken = AccessToken
                .createFromExistingAccessToken(accesstoken, date, null,
                        null, null);
        Session.openActiveSessionWithAccessToken(NewTest.this, accessToken,
                new Session.StatusCallback() {

                    @Override
                    public void call(Session session, SessionState state,
                            Exception exception) {
                        if (session != null && session.isOpened()) {
                            Session.setActiveSession(session);
                            getPublishPremission();
                        }
                    }
                });

    }
}


  private void getPublishPremission(){
    if (Session.getActiveSession().getPermissions() == null
            || !Session.getActiveSession().getPermissions()
                .containsAll(PERMISSIONS)) {
           Session.getActiveSession().requestNewPublishPermissions(
                new Session.NewPermissionsRequest(
                        NewTest.this, PERMISSIONS));

        }else{
          publishFeedDialog()
        }

 private void publishFeedDialog() {
   //open WebDialog to publish feed
 }

执行流程围绕requestNewPublishPermissions和StatusCallback,因此没有设置权限。我请求你的帮助指出我出错的地方。我在我的facebook应用程序中使用不同的facebook ID登录。在我的应用程序中我正在尝试使用应用程序共享首选项中保存的访问令牌信息中的不同facebook Id登录。

1 个答案:

答案 0 :(得分:1)

see此链接

如果设备上没有安装Facebook应用程序,则facebook sdk中存在一个错误。当用户要求其他权限时,用户会再次访问登录对话框。