我无法在我的应用中从Facebook收到电子邮件。我搜索了很多并且遇到了许多答案,但在我的案例中没有任何工作。我遵循相同的方法described here,但返回的值为null。下面给出的是我的代码。而且我还添加了User& Facebook应用中的朋友权限作为电子邮件。如果有人能够指出我可能正在做的错误,那将是非常有帮助的。
private void makeMeRequest(final Session session) {
Request request = Request.newMeRequest(session,
new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
if (session == Session.getActiveSession()) {
if (user != null) {
profilePictureView.setProfileId(user.getId());
facebook_id = String.valueOf(user.getId());
fullName.setText(user.getName());
if (user.asMap().get("email") != null)
email.setText(user.asMap().get("email")
.toString());
}
}
if (response.getError() != null) {
}
}
});
Bundle params = request.getParameters();
params.putString("fields", "email,name");
request.setParameters(params);
request.executeAsync();
}
答案 0 :(得分:1)
请求看起来不错。电子邮件属性null
值的原因通常是email
权限。
您写道:
And also I have added User & Friend permissions as email in the facebook app
facebook app是什么意思?您需要在应用中请求权限。
看看这个解决方案。我认为它可以帮到你:https://stackoverflow.com/a/18147719/334522
答案 1 :(得分:1)
根据您的需要,这可能是合适的。
我正在使用https://github.com/sromku/android-simple-facebook而不是臃肿的Facebook SDK。通过它,很容易收到电子邮件。
mSimpleFacebook.getProfile(new OnProfileRequestAdapter()
{
@Override
public void onComplete(Profile profile)
{
String id = profile.getId();
String firstName = profile.getFirstName();
String birthday = profile.getBirthday();
String email = profile.getEmail();
String bio = profile.getBio();
// ... and many more properties of profile ...
}
});