我的应用程序在使用此代码之前它已经运行但它在昨天停止工作,不知道为什么。 我可以得到名字和图片。但是电子邮件是空的。
List<String> permisions = Arrays.asList(
"email");
Session.openActiveSession(getActivity(), true, permisions , new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
// make request to the /me API
Request.newMeRequest(session, new Request.GraphUserCallback() {
// callback after Graph API response with user object
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
String name = user.getFirstName();
String email = (String)user.getProperty("email");
System.out.println("Email: "+email);
System.out.println("Name: "+name);
}
}
答案 0 :(得分:0)
问题是,用户可能在其Facebook个人资料中设置了电子邮件,但可能会将其设置为私有,即使他们已设置,您也无法检索它,在这种情况下,您将获得空值。您可能希望在使用该属性之前先检查null,否则代码流将停在那里并且不会发生任何事情,没有错误或任何事情,但您将获得NPE。检查一下:checking if facebook-sdk android giving null value for user data before calling getProperty()