2014-03-31 132 views
0

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

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

我的图形结果没有Email:

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"}} 

我很担心我把许可的方式表示关注。然后我在会议上提供基本信息和电子邮件。我不知道这是否正确。

UPDATE

这里的截图,同时要求到Facebook。即使有一个朋友名单,我不会允许。并在我的图表上,仍然没有电子邮件。
enter image description here

回答

0

我想你已经在授权一次后添加了权限。因此,请点击编辑,查看您提供给此应用的所有权限here

如果您发现没有设置email权限,那么您可以注销应用程序/从设置中删除应用程序,然后重新登录;以便您可以再次获得包含email权限的授权。

+0

我在开始向Facebook发问时请求许可。你可以给我样品,我必须允许。顺便说一句,我有更新我的问题与形象。并从我的Facebook应用程序,它写的“这个应用程序需要:你的基本信息,你的电子邮件地址”,所以我认为我的许可运作良好,但Facebook没有给我的电子邮件在图 –

+0

你能看到电子邮件许可我在答案中提到的链接? –

+0

是的,我看到了,我发现我的应用程序需要基本信息和电子邮件地址。 –

0

对于从Facebook获取电子邮件,尝试它像下面的东西。

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

通过使用上面的代码,我成功地能够得到facebbok用户的电子邮件。尝试一下,让我知道你是否仍然面临任何问题。

+0

问题不在于电子邮件参数,而是在我的图表上没有电子邮件。请检查我的图表结果。 –

1

这是众所周知的问题.....对于某些帐户facebook不想回复电子邮件,即使代码是正确的。你可以试试其他账户吗?

相关问题