如何从Android登录android中获取电子邮件ID?

时间:2013-07-30 13:48:13

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

我正在尝试将Facebook API集成到android中的登录功能。我需要各个用户的电子邮件ID。我收到JSON作为回应,但它没有电子邮件ID。如何才能获得电子邮件ID。

public void getProfileInformation() {
        mAsyncRunner.request("me", new RequestListener() {
            @Override
            public void onComplete(String response, Object state) {
                Log.d("Profile", response);
                String json = response;
                try {
                    // Facebook Profile JSON data
                    JSONObject profile = new JSONObject(json);

                    // getting name of the user
                    final String name = profile.getString("name");

                    // getting email of the user
                    final String email = profile.getString("email");

                    runOnUiThread(new Runnable() {

                        // Dayanand plzz check this log n let me know.

                        @Override
                        public void run() {
                            Toast.makeText(getApplicationContext(), "Name: " + name + "\nEmail: " + email, Toast.LENGTH_LONG).show();
                        }

                    });


                } catch (JSONException e) {
                    e.printStackTrace();
                }
            } 

这是代码,我在Toast中得到null。它去捕捉方法。请帮忙

3 个答案:

答案 0 :(得分:0)

您必须向用户请求权限:email

答案 1 :(得分:0)

您需要向用户请求email权限,否则您无法获得该权限。 用户授予您权限后,您会在申请me时看到它。

请参阅http://developers.facebook.com/docs/reference/login/email-permissions/

答案 2 :(得分:0)

当您第一次登录时,您正在传递一个权限数组。所以,你必须传递这个数组以获得电子邮件许可..

private String[] permissions = {"publish_stream","email","user_about_me","user_status"};
相关问题