android-fb-sdk电子邮件始终为空

时间:2014-10-28 15:39:34

标签: android android-facebook

我对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

0 个答案:

没有答案