Android Facebook sdk 4.2 无法获取电子邮件

标签 android facebook-graph-api facebook-sdk-4.0

我正在为我的 android 应用程序使用 facebook sdk 4.2。但是我无法收到我的电子邮件,而且它没有显示电子邮件的值(value)。但是,我可以获得其他值,例如名称、链接、ID、性别。 stackoverflow 中有一些关于此的主题,但他们使用的是较旧的 sdk 版本,类不同。请帮忙,这是我的代码。

FacebookSdk.sdkInitialize(this.getApplicationContext());
callbackManager = CallbackManager.Factory.create();

LoginManager.getInstance().registerCallback(callbackManager,
  new FacebookCallback < LoginResult > () {
   @Override
    public void onSuccess(LoginResult loginResult) {

      Toast.makeText(MainActivity.this, "SUCCESS", Toast.LENGTH_SHORT).show();

      GraphRequest request = GraphRequest.newMeRequest(
        loginResult.getAccessToken(),
        new GraphRequest.GraphJSONObjectCallback() {
        @Override
          public void onCompleted(
            JSONObject object,
            GraphResponse response) {
            // Application code 
            try {
              String id = object.getString("id");
              String name = object.getString("name");

              String email = object.getString("email"); //Get null value here

              String gender = object.getString("gender");

              Toast.makeText(MainActivity.this, "HI," + name + "Gender: " + gender, Toast.LENGTH_SHORT).show();

            } catch (JSONException e) {
              Toast.makeText(MainActivity.this, "Error", Toast.LENGTH_SHORT).show();
              e.printStackTrace(); 

            }
          }
        });
      Bundle parameters = new Bundle();
      parameters.putString("fields", "id,name,email,gender");
      request.setParameters(parameters);
      request.executeAsync();
    }

    @Override
    public void onCancel() {
      // App code
    }

    @Override
    public void onError(FacebookException exception) {
      // App code   
    }
  });
@Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   super.onActivityResult(requestCode, resultCode, data);
   callbackManager.onActivityResult(requestCode, resultCode, data);
 }

我的日志文件

06-05 13:47:56.207: W/System.err(9965): org.json.JSONException: No value for email 06-05 13:47:56.246: W/System.err(9965): at org.json.JSONObject.get(JSONObject.java:355) 06-05 13:47:56.246: W/System.err(9965): at org.json.JSONObject.getString(JSONObject.java:515) 06-05 13:47:56.254: W/System.err(9965): at com.android.jobstreet.MainActivity$2$1.onCompleted(MainActivity.java:242) 06-05 13:47:56.254: W/System.err(9965): at com.facebook.GraphRequest$1.onCompleted(GraphRequest.java:295) 06-05 13:47:56.254: W/System.err(9965): at com.facebook.GraphRequest$5.run(GraphRequest.java:1243) 06-05 13:47:56.254: W/System.err(9965): at android.os.Handler.handleCallback(Handler.java:733) 06-05 13:47:56.254: W/System.err(9965): at android.os.Handler.dispatchMessage(Handler.java:95) 06-05 13:47:56.254: W/System.err(9965): at android.os.Looper.loop(Looper.java:136) 06-05 13:47:56.254: W/System.err(9965): at android.app.ActivityThread.main(ActivityThread.java:5146) 06-05 13:47:56.254: W/System.err(9965): at java.lang.reflect.Method.invokeNative(Native Method) 06-05 13:47:56.254: W/System.err(9965): at java.lang.reflect.Method.invoke(Method.java:515) 06-05 13:47:56.254: W/System.err(9965): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732) 06-05 13:47:56.254: W/System.err(9965): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566) 06-05 13:47:56.254: W/System.err(9965): at dalvik.system.NativeStart.main(Native Method)

最佳答案

您必须设置以下权限

loginbtn.setReadPermissions("email");

关于Android Facebook sdk 4.2 无法获取电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30659206/

相关文章:

iphone - 从 WCF 发布订阅到 Android、Iphone、WP7

android - 尽管检查了 API 级别,AuthenticationCallback 和 KeygenParameterSpec 还是使应用程序崩溃

java - Android 中 "YYYY-MM-DDTHH:MM.000z"(ISO 8601) 格式的当前日期时间

android - 对齐 TextView 元素 alignParentLeft

ios - Swift IOS Facebook 登录 Fast-App-Switch

facebook - 从服务器端发送应用程序请求

php - 使用 Facebook PHP SDK 确定用户是否喜欢我的页面?

ios - Facebook SDK 分享链接内容被替换为内容 URL 中的元数据

android - 登录 : after going to another activity app forgot Facebook picture, 和名称文本

facebook - 如何使用 Facebook insights API 获取广告最终 url