我试图让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();
}
}
});
}