简体   繁体   English

在Facebook SDK集成中获取空电子邮件地址

[英]Getting null email address in facebook sdk integration

Using facebook sdk version 3.0 & following is my code.I have getting id and name value but null email address every time. 我的代码使用facebook sdk 3.0及以下版本。我每次都获得ID和名称值,但电子邮件地址为空。

 authButton.setReadPermissions(Arrays.asList("basic_info","email"));
              // session state call back event
              authButton.setSessionStatusCallback(new 
                                Session.StatusCallback() {

       @Override
       public void call(Session session, 
                        SessionState state, 
                        Exception exception) {

            if (session.isOpened()) {
                 Log.i(TAG,"Access Token"+ session.getAccessToken());
                   Request.newMeRequest(session,
                       new Request.GraphUserCallback() {
              @Override
              public void onCompleted(GraphUser user,Response response) {
               if (user != null) {               
                   Log.i(TAG,"User ID "+ user.getId());
                   Log.i(TAG,"Email "+ user.asMap().get("email"));
                     }
                    }
                  }).executeAsync();
               }
              }
         });

No need set Permissions as seperate for reading 无需将权限设置为单独阅读

 Session.OpenRequest openRequest = new Session.OpenRequest(LandingPageActivity.this);
    openRequest.setPermissions(Arrays.asList...);
    openRequest.setCallback(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 request = 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 email= user.getProperty("email");
                                }
                            }

                        });
                request.executeAsync();

            }
    });
    Session session = new Session(LandingPageActivity.this);
    Session.setActiveSession(session);
    session.openForRead(openRequest);

Reference : click Here 参考: 单击此处

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM