android facebook sdk返回电子邮件null

时间:2014-09-08 19:33:28

标签: android facebook

我的应用程序在使用此代码之前它已经运行但它在昨天停止工作,不知道为什么。 我可以得到名字和图片。但是电子邮件是空的。

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

                  }
                }

1 个答案:

答案 0 :(得分:0)

问题是,用户可能在其Facebook个人资料中设置了电子邮件,但可能会将其设置为私有,即使他们已设置,您也无法检索它,在这种情况下,您将获得空值。您可能希望在使用该属性之前先检查null,否则代码流将停在那里并且不会发生任何事情,没有错误或任何事情,但您将获得NPE。检查一下:checking if facebook-sdk android giving null value for user data before calling getProperty()