gpt4 book ai didi

android - Facebook android SDK 3 从用户那里获取电子邮件

转载 作者:行者123 更新时间:2023-11-29 21:42:54 27 4
gpt4 key购买 nike

这是我的 facebook 请求代码。我想获取用户电子邮件和其他基本信息。这段代码在模拟器中没有任何问题。但在真实设备中,电子邮件给出空值。 id,fristname...带有实际值。我如何在真实设备上接收电子邮件?

    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();

最佳答案

不提交 ME 请求,而是使用 Facebook 的 LoginButton,并添加一个钩子(Hook)来拦截用户信息:

// 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");
}
}
});

然后添加一个额外的权限来获取电子邮件:

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

关于android - Facebook android SDK 3 从用户那里获取电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16610095/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com