简体   繁体   English

Facebook android SDK 3收到用户的电子邮件

[英]Facebook android SDK 3 get email from user

Here is my code for facebook me request.i want to get user email and other basic info.this code is work without any issue in emulator.but in real device email gives null value. 这是我请求我的facebook代码。我想获取用户电子邮件和其他基本信息。此代码在模拟器中没有任何问题,但可以正常工作,但在真实设备中电子邮件提供空值。 id,fristname... comes with real values. id,fristname ...带有实际值。 how can i get email on real device? 我如何在真实设备上获取电子邮件?

    Request request = Request.newMeRequest(session,
            new Request.GraphUserCallback() {


                @Override
                public void onCompleted(GraphUser user, Response response) {

                    if (user != null) {



                        RequestParams params = new RequestParams();

                        params.put("email",(String) user.getProperty("email"));
                        params.put("password", "");
                        params.put("facebook_id", user.getId());
                        editor.putString("facebook_id", user.getId());

                        login(params,
                                (String) user.asMap().get("email"),
                                user.getId(), user.getFirstName(),
                                user.getLastName());

                    }
                }
            });
    Bundle params = new Bundle();
    params.putString("fields", "id,email,first_name,last_name");
    request.setParameters(params);
    request.executeAsync();

Instead of submitting a ME request, use Facebook's LoginButton, and add a hook to intercept the user info: 不用提交ME请求,而是使用Facebook的LoginButton,然后添加一个钩子来拦截用户信息:

// Intercept the facebook user returned from login
facebookLoginButton.setUserInfoChangedCallback(new LoginButton.UserInfoChangedCallback() {

    @Override
    public void onUserInfoFetched(GraphUser user) {
        mFacebookUser = user;

        if (user != null) {
            LogUtils.LOGFB(TAG, "Got a Facebook user: " + user.getFirstName() +
                    " " + user.getLastName() + ", email: " + user.getProperty("email"));
        }
        else {
            LogUtils.LOGFB(TAG, "No Facebook user");
        }
    }
});

Then add an extra permission to get email: 然后添加额外的权限来获取电子邮件:

facebookLoginButton.setReadPermissions(Arrays.asList(
        "email", "user_birthday", ...));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM