最新の Facebook ログイン アクティビティを実装しようとしています。メインアクティビティと、そのボタンをクリックしてFacebook経由でログインするためのカスタムボタンがあり、ログインしてユーザーの詳細、電子メール、プロフィール画像、友人の詳細を取得する必要があります.Facebookから提供されたログイン用のコードを試しましたが、試した基本的な詳細に対してのみ機能しますアクセス許可を追加しても、メールと残りの部分は null になりますが、基本的な詳細は正しく取得できます。また、フラグメントではなくアクティビティを使用しています。他の詳細も取得するにはどうすればよいですか? 助けてください。よろしくお願いします。
public class new2 extends Activity {
private ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b=(Button)findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
loginact();
}
});
}
protected void loginact() {
// TODO Auto-generated method stub
progressDialog = ProgressDialog.show(new2.this, "loading", "loading");
new Thread(new Runnable(){
public void run(){
Session.openActiveSession(new2.this, true, new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
Request request = Request.newMeRequest(session, new GraphUserCallback() {
// callback after Graph API response with user object
@Override
public void onCompleted(GraphUser user, Response response) {
progressDialog.dismiss();
if (user != null) {
TextView welcome = (TextView) findViewById(R.id.textView1);
welcome.setText("Hello " + user.getName() + "!");
TextView t = (TextView) findViewById(R.id.textView1);
t.setText(user.getName() + ","
+ user.getUsername() + ","
+ user.getId() + "," + user.getLink()
+ "," + user.getFirstName()+ user.asMap().get("email"));
// String email = (String) response.getGraphObject().getProperty("email");
Log.w("user", user.toString());
Log.w("response", response.toString());
Log.w("email", user.asMap().get("email").toString());
}
}
}
);
String NAME = "name";
String ID = "id";
String PICTURE = "picture";
String EMAIL = "email";
String FRIENDS = "read_friendlists";
String FIELDS = "fields";
String REQUEST_FIELDS = TextUtils.join(",", new String[] {
ID, NAME, PICTURE, EMAIL,FRIENDS
});
Bundle parameters = new Bundle();
parameters.putString(FIELDS, REQUEST_FIELDS);
request.setParameters(parameters);
Request.executeBatchAsync(request);
}
}
});
}
}
).start();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}