我按照https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/上的“使用 Facebook 登录创建新的 Android 项目”部分的步骤进行操作,登录过程很好。因为我想使用原生 Android 按钮让用户登录,所以我稍微修改了代码,将以下代码移动到原生 Android 按钮的 View.OnClickListener() 中。以下是监听器中的代码:
Session.openActiveSession(MainActivity.this, true, new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session,SessionState state, Exception exception) {
if (session.isOpened()) {
// make request to the /me API
Request.executeMeRequestAsync(session,new Request.GraphUserCallback() {
// callback after Graph API
// response with user object
@Override
public void onCompleted(GraphUser user,Response response) {
if (user != null) {
Toast.makeText(getApplicationContext(), "Hello " + user.getName() +" "+user.getId()+"!", Toast.LENGTH_LONG).show();
}
}
});
}
}
});
onActivityResult() 和 AndroidManifest.xml 和教程一样
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
但是,我想在用户成功登录时请求获取“read_friendlists”。我在https://developers.facebook.com/docs/tutorials/androidsdk/3.0/scrumptious/authenticate/阅读了教程,但它使用 Facebook SDK 自定义按钮。如何使用像上面显示的代码一样的原生 Android 按钮实现相同的行为?