Android如何从facebook sdk获取电子邮件

Android如何从facebook sdk获取电子邮件,android,facebook,facebook-graph-api,facebook-android-sdk,facebook-sdk-3.0,Android,Facebook,Facebook Graph Api,Facebook Android Sdk,Facebook Sdk 3.0,我需要使用android Facebook sdk获取用户的电子邮件,我认为这是asMap中的内容,但似乎无法 我试过这个 但是日志给了我电子邮件=null。我真的很困惑Facebook为什么不明确地给我们发邮件 任何帮助都将不胜感激,提前谢谢 编辑 例外情况 07-31 14:55:44.054: E/AndroidRuntime(26398): FATAL EXCEPTION: main 07-31 14:55:44.054: E/AndroidRuntime(26398): java.la

我需要使用android Facebook sdk获取用户的电子邮件,我认为这是
asMap
中的内容,但似乎无法

我试过这个 但是
日志
给了我
电子邮件
=
null
。我真的很困惑Facebook为什么不明确地给我们发邮件

任何帮助都将不胜感激,提前谢谢

编辑 例外情况

07-31 14:55:44.054: E/AndroidRuntime(26398): FATAL EXCEPTION: main
07-31 14:55:44.054: E/AndroidRuntime(26398): java.lang.NullPointerException
07-31 14:55:44.054: E/AndroidRuntime(26398):    at com.Syriatel.EatTel.EditCustomerProfile.onOptionsItemSelected(EditCustomerProfile.java:89)
07-31 14:55:44.054: E/AndroidRuntime(26398):    at android.app.Activity.onMenuItemSelected(Activity.java:2205)
07-31 14:55:44.054: E/AndroidRuntime(26398):    at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:768)
07-31 14:55:44.054: E/AndroidRuntime(26398):    at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:147)
07-31 14:55:44.054: E/AndroidRuntime(26398):    at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855)
07-31 14:55:44.054: E/AndroidRuntime(26398):    at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:532)
07-31 14:55:44.054: E/AndroidRuntime(26398):    at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122)
07-31 14:55:44.054: E/AndroidRuntime(26398):    at android.view.View$PerformClick.run(View.java:9229)
07-31 14:55:44.054: E/AndroidRuntime(26398):    at android.os.Handler.handleCallback(Handler.java:587)
07-31 14:55:44.054: E/AndroidRuntime(26398):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-31 14:55:44.054: E/AndroidRuntime(26398):    at android.os.Looper.loop(Looper.java:130)
07-31 14:55:44.054: E/AndroidRuntime(26398):    at android.app.ActivityThread.main(ActivityThread.java:3701)
07-31 14:55:44.054: E/AndroidRuntime(26398):    at java.lang.reflect.Method.invokeNative(Native Method)
07-31 14:55:44.054: E/AndroidRuntime(26398):    at java.lang.reflect.Method.invoke(Method.java:507)
07-31 14:55:44.054: E/AndroidRuntime(26398):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
07-31 14:55:44.054: E/AndroidRuntime(26398):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
07-31 14:55:44.054: E/AndroidRuntime(26398):    at dalvik.system.NativeStart.main(Native Method)

试着这样做:

Session session = new Session(this); // <-- where "this" is a reference to your Activity, or Context
Session.OpenRequest request = new Session.OpenRequest(this).setPermissions("basic_info", "email");
openRequest.setCallback(new Session.StatusCallback() {
    ...
    // Put your callback code here
});
Session.setActiveSession(session);
session.openForRead(request);
会话会话=新会话(此);// 试试这个

 Log.e("data", user.getProperty("email")+ "");
并添加代码中为空的权限

Arrays.asList("email", "user_birthday");
我使用相同的代码和它的工作

 Log.e("data", user.getProperty("email")+ "");
Arrays.asList("email", "user_birthday");