Facebook for sdk 3.0的某些Android设备无法访问Facebook用户电子邮件

时间:2013-07-02 07:07:37

标签: android facebook

我按照link在我的应用中集成了Facebook SDK 3.0。我在收到用户的电子邮件时遇到了一个问题。

对于某些设备,我可以收到电子邮件,但是对于某些设备(例如三星Note 2,我现在知道的三星Google Nexus。)我没有收到电子邮件。我已经添加了获取电子邮件的权限。< / p>

任何人都可以建议我这方面的任何类型的帮助表示赞赏。我正在尝试以下列方式获取用户信息。

     Request request = Request.newMeRequest(session, 
            new Request.GraphUserCallback() {
        @Override
        public void onCompleted(GraphUser user, Response response) {
            // If the response is successful
            if (session == Session.getActiveSession()) {

                if (user != null) {

                    String userName = user.getName();
                    String userEmail = user.asMap().get("email").toString();
                    userEmail = (String)user.getProperty("email");
                    String userId = user.getId();
                    Session session = Session.getActiveSession();
                    String userAccessToken = session.getAccessToken();

                }
            }
            if (response.getError() != null) {

                // Handle errors, will do so later.
            }
        }
    });

String NAME = "name";
    String ID = "id";
    String PICTURE = "picture";
    String EMAIL = "email";
    String FIELDS = "fields";
    String REQUEST_FIELDS = TextUtils.join(",", new String[] {ID, NAME, PICTURE, EMAIL});

    Bundle parameters = new Bundle();
    parameters.putString(FIELDS, REQUEST_FIELDS);
    request.setParameters(parameters);
    Request.executeBatchAsync(request);

我也尝试过收发电子邮件,但仍无效。

    Bundle params = request.getParameters();
    params.putString("fields", "email");
    params.putString("basic_info", "email,name");
    request.setParameters(params);
    Request.executeBatchAsync(request); 

任何形式的帮助或指南都是有帮助的。

2 个答案:

答案 0 :(得分:3)

最后,我得到了我的问题的答案,我使用了我朋友的Facebook个ID,发现他没有在Email Id帐户中输入Facebook。如果我们使用了获取电子邮件的权限仍然是我们因此而无法获取。要获取电子邮件,我们需要添加此link中提及的权限,或者我们可以明确添加我在问题中使用的权限。还有一个重要的事情是,只有当它在那里提到时,你才能收到电子邮件。

希望这对某些人有用。

答案 1 :(得分:0)

在我看来,你应该创建一个OpenRequest对象,如Stack Overflow的这个链接所示。它可能会解决您的问题。 : - Set permission for getting User's email ID from Facebook Login