[英]Get email and birthday from facebook
如果帳戶已注冊多個電子郵件,如何從Facebook獲取主要電子郵件?
我的登錄按鈕有以下方法:
private void onClickLogin() {
session = Session.getActiveSession();
if (!session.isOpened() && !session.isClosed()) {
session.openForRead(new Session.OpenRequest(this).setPermissions(Arrays.asList("public_profile", "email")).setCallback(statusCallback));
} else {
Session.openActiveSession(this, true, statusCallback);
}
}
單擊此方法可獲得詳細信息:
public void onClick(View v) {
session = Session.getActiveSession();
if (session == null) {
Toast.makeText(HelloFacebookSampleActivity.this, "NULL NULL NULL NIGGA NULL!!", Toast.LENGTH_SHORT).show();
} else {
Request.newMeRequest(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
Toast.makeText(HelloFacebookSampleActivity.this, buildUserInfoDisplay(user), Toast.LENGTH_SHORT).show();
}
}
}).executeAsync();
}
}
這是buildUserInfoDisplay方法:
private String buildUserInfoDisplay(GraphUser user) {
StringBuilder userInfo = new StringBuilder("");
userInfo.append(String.format("First Name: %s\n\n", user.getFirstName()));
userInfo.append(String.format("Last Name: %s\n\n", user.getLastName()));
userInfo.append(String.format("Birthday: %s\n\n", user.getBirthday()));
userInfo.append(String.format("Email1: %s\n\n", (String) user.getProperty("email")));
userInfo.append(String.format("Email2: %s\n\n", user.getProperty("email")));
userInfo.append(String.format("Locale: %s\n\n", user.getProperty("locale")));
return userInfo.toString();
}
我得到名字和姓氏,以及語言環境正確,但是我沒有電子郵件和生日。
不知道我做錯了什么。 謝謝。
回答:
因此答案只是重新安裝該應用程序。 -_-
該API僅在電子郵件字段中返回一個電子郵件地址,這將是主要電子郵件。 如果用戶有多封電子郵件,則僅返回主電子郵件。 如果沒有主電子郵件,或者沒有經過驗證,則不返回該字段。 請注意,您的應用還必須具有電子郵件權限。
請參閱https://developers.facebook.com/docs/graph-api/reference/v2.0/user中的文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.