[英]Facebook android SDK 3 get email from user
這是我請求我的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,然后添加一個鈎子來攔截用戶信息:
// 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", ...));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.