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 ボタンで同じ動作を実現するにはどうすればよいですか?