Facebook登录Android会在登录期间弹出两次Web对话框

时间:2014-08-24 06:29:51

标签: android facebook-android-sdk

我试图让Facebook登录在我的Android应用中工作。当我在设备上安装了Facebook应用程序时,它确实很好,但是当我没有弹出一个网络对话框提示我登录时,然后我已经授予了应用程序的权限,把我带回到开始页面让我登录。如果我此时关闭对话框,一切正常,检测到登录。但是,如果我不知道,我会收到一条消息,说我已经授予了对此应用程序的权限等。我不是先要求读取权限,然后再写入权限,因为其他一些关于堆栈溢出的问题提。

我的代码如下,使用最新的API版本:

LoginButton authButton = (LoginButton) findViewById(R.id.authButton);
authButton.setOnClickListener(new OnClickListener()
{
    @Override
    public void onClick(View v)
    {
        openFacebookSession();
    }
});

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

private void openFacebookSession()
{
    // Open a Facebook session to get the user's name
    Session.openActiveSession(this, true, new Session.StatusCallback()
    {
        @Override
        public void call(Session session, SessionState state, Exception exception)
        {
            if (session.isOpened())
            {
                Request.newMeRequest(session, new Request.GraphUserCallback()
                {
                    // Response Callback
                    @Override
                    public void onCompleted(GraphUser user, Response response)
                    {
                        if (user != null)
                        {
                            Log.d("in facebook","first name:" + user.getFirstName());
                            Log.d("in facebook","last name:" + user.getLastName());
                            Log.d("in facebook","id:" + user.getId());
                        }
                    }
                }).executeAsync();
            }
        }
    });
}

0 个答案:

没有答案
相关问题