我试图在我的应用程序中获取当时正在活动会话上工作的Facebook用户的用户名。在许多帖子中,我读到了不推荐使用方法getUsername()。真?这是我的一段代码:
if(session!=null && session.isOpened()){
Log.i("LandingActivity", "session not null...");
Request.newMeRequest(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(final GraphUser user, final Response response) {
if (user != null) {
String u=user.getUsername();
String url="exist_user.php?mail=".concat(u);
lf.ftpControl(url);
}
}
}).executeAsync();
错误是在有concat函数的行的NullPointerException。帮我!谢谢
答案 0 :(得分:1)
从Graph API的v2.0开始,不再可能获得用户的用户名或真实ID。有关更改的详细信息,请参阅更改日志:来源:https://developers.facebook.com/docs/apps/changelog
我看到您正在尝试将用户名用作电子邮件,这不是一个好主意,也是他们删除对其的访问权限的一个原因。识别返回用户的正确方法是存储他们的(应用范围)ID,而不是他们的电子邮件。如果您确实需要用户的电子邮件,请询问电子邮件权限,您将获得/me
的结果。