我已经通过点击按钮调用了这段代码(工作于2014年11月):
Session.openActiveSession(this, true, new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
Request.newMeRequest(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(final GraphUser user, final Response response) {
if (user != null) {
System.out.println(user);
preference.edit().putString("fb_nome",user.getName()).commit();
preference.edit().putString("fb_id",user.getId()).commit();
preference.edit().putString("fb_email",user.asMap().get("email")+"").commit();
if(user.getLocation()!=null) {
preference.edit().putString("fb_citta", user.getLocation().asMap().get("name") + "").commit();
}
Session session = Session.getActiveSession();
preference.edit().putString("fb_token",session.getAccessToken()).commit();
new loginFacebook().execute();
}
}
}).executeAsync();
}
}
});
最新的sdk等等。
问题是facebook不再给我发电子邮件和城市了!
我确定它在11/2014工作,但现在没有。
电子邮件是空的,也是城市......
有人可以帮帮我吗? 感谢答案 0 :(得分:0)
您是否设置了适当的权限?
facebookLoginButton.setReadPermissions(Arrays.asList("public_profile", "email"));
加上获取用户电子邮件的方式是:
String email = (String) user.getProperty("email")
希望这会有所帮助,可以在我的所有应用中按预期工作。
答案 1 :(得分:0)
解决了这个(绿色V)问题:how to get email id from facebook sdk in android applications?
基本上是:
List<String> permissions = new ArrayList<String>();
permissions.add("email");
Session.openActiveSession(this, true,permissions, new Session.StatusCallback() {