我对android-facebook-sdk 3.19.1有一个大问题。检索用户的公共信息没有问题,但是无法获取电子邮件地址。
我知道我的帖子非常接近以下主题==> facebook android sdk -user email returns null但我暂时没有解决方案。
所以这是我的代码
在我的ConnectionActivity.java中,我有一个按钮R.id.fb_connect
private List<String> permissions = Arrays.asList("email");
@Click(R.id.fb_connect)
protected void fbConnect() {
ensureOpenSession();
}
private boolean ensureOpenSession() {
Session session = Session.getActiveSession();
if (session == null || !session.isOpened()) {
LOGD(TAG, "Call Session.openActiveSession");
Session.openActiveSession(this, true, permissions, new FbCallback());
return false;
}
return true;
}
public class FbCallback implements Session.StatusCallback {
@Override
public void call(Session session, SessionState sessionState, Exception e) {
// make request to the /me API
Request.newMeRequest(session, new Request.GraphUserCallback() {
// callback after Graph API response with user object
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
// user.asMap().get("email");
Toast.makeText(ConnectionActivity.this, "email : " + user.getProperty("email"), Toast.LENGTH_LONG).show();
}
}
}).executeAsync();
}
}
我也尝试过上面链接中的代码,但它不起作用。一个精度,使用此代码,我可以看到Facebook活动,上面写着“XXX将收到以下信息:您的公开个人资料和电子邮件地址”,但是吐司显示“email:null”
修改
我使用android studio,我的gradle文件有以下行
compile 'com.facebook.android:facebook-android-sdk:3.19.1'
EDIT2
如果我使用
LOGD(TAG, "isPermissionGranted : " + session.isPermissionGranted(permissions.get(0)));
在调用Request.newMeRequest
之前显示为true。正确授予权限
THX