【问题标题】:get email from android facebook sdk从 android facebook sdk 获取电子邮件
【发布时间】:2014-03-31 16:59:34
【问题描述】:

我有工作代码来获取除电子邮件之外的用户信息。这是我的请求代码:

private void requestLoginFb() {  
    Session session = Session.getActiveSession();  
    if (!session.isOpened() && !session.isClosed()) {
        session.openForRead(new Session.OpenRequest(this).setPermissions(
                Arrays.asList("basic_info", "email")).setCallback(
                fbCallback));
    } else {
        Session.openActiveSession(act, true, fbCallback);
    }
}

我在这里获取用户信息

Request.executeMeRequestAsync(session,
    new Request.GraphUserCallback() {
    @Override
    public void onCompleted(GraphUser user, Response response) {
        if (null != user) {
            C.trace("user name: " + user.getName());
            C.trace("user gender: " + user.asMap().get("gender"));
        }
    }
});  

我的图表结果没有电子邮件:

GraphObject{graphObjectClass=Map, state={"id":"10000xxxxxxx","first_name":"xxxx","username":"xxxxxx","timezone":x,"locale":"en_US","link":"https:\/\/www.facebook.com\/xxxxxx","name":"xxxxx","last_name":"xxxxx","gender":"male","education":[{"type":"xxxx","school":{"id":"xxxxx","name":"xxxxx"}}],"updated_time":"xxxxxxx"}}  

我担心我授予许可的方式。然后我把基本信息和电子邮件放在会议上。我不知道这是否正确。

更新

这里是向 facebook 请求时的屏幕截图。甚至有一个我未经许可的朋友列表。在我的图表上,仍然没有电子邮件。

【问题讨论】:

    标签: android facebook email facebook-android-sdk


    【解决方案1】:

    这是众所周知的问题.....对于某些帐户,即使代码正确,Facebook 也不想返回电子邮件。你能用其他帐户试试吗?

    【讨论】:

      【解决方案2】:

      我认为您在获得一次授权后添加了权限。因此,通过单击 Edit 查看您为该应用 here 提供的所有权限。

      如果您发现email没有设置权限,那么您可以退出应用/从设置中删除应用,然后重新登录;这样您就可以在包含email 权限的情况下再次获得授权。

      【讨论】:

      • 我在开始向 facebook 请求请求时提出了许可。你能在我必须许可的地方给我样品吗?顺便说一句,我已经用图像更新了我的问题。从我的 facebook 应用程序中,它写道“这个应用程序需要:你的基本信息,你的电子邮件地址”所以我认为我的许可运作良好,但 facebook 没有给我图表上的电子邮件
      • 你能看到我在答案中提到的链接中的电子邮件权限吗?
      • 是的,我明白了,我发现我的应用需要基本信息和电子邮件地址。
      • /me?fields=first_name,last_name,email提出请求,看看有什么反应
      • 如果您的代码是正确的,那么只有这可能是原因:stackoverflow.com/a/18377407/1343690。与其他用户一起尝试,让我知道结果
      【解决方案3】:

      要从 facebook 获取电子邮件,请尝试以下方式。

      String email = user.asMap().get("email").toString();
      Textview mEmail = (TextView) findViewById(R.id.textView1);
      mEmail.setText(email);
      

      通过使用上面的代码,我成功地获得了 facebbok 用户的电子邮件。试试看,如果您仍然遇到任何问题,请告诉我。

      【讨论】:

      • 问题不在于电子邮件参数,但我的图表上没有电子邮件。请检查我的图表结果。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-30
      • 1970-01-01
      • 2013-04-07
      • 1970-01-01
      • 1970-01-01
      • 2018-03-06
      • 2015-09-27
      相关资源
      最近更新 更多