即使用户已授予权限,也无法从Facebook Android SDK 4.x收到电子邮件

时间:2017-07-17 14:25:13

标签: android facebook facebook-graph-api facebook-android-sdk

我想从Facebook Android SDK 4.3.0

获取用户的电子邮件

有很多关于它的问题,但标记的答案告诉用户有时可能不会授予权限。

我正在使用我的Facebook acc进行测试,并且我已经授予了许可。我仍然无法得到它。

代码:

public static final List<String> FACEBOOK_PERMISSIONS = Arrays.asList("public_profile", "email", "user_birthday");

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState);
    callbackManager = CallbackManager.Factory.create();
    buttonLogin = (LoginButton) view.findViewById(R.id.button_fb_login);
    buttonLogin.setReadPermissions(AppConstants.FACEBOOK_PERMISSIONS);
    buttonLogin.setFragment(this);

    buttonLogin.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
        GraphRequestAsyncTask request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
            @Override
            public void onCompleted(JSONObject user, GraphResponse response) {
                if (user != null) {
                    Log.d("FacebookSDK", user.optString("email"));
                }
            }
        }).executeAsync();
    }

        @Override
        public void onCancel() {

        }

        @Override
        public void onError(FacebookException error) {

        }
    });
}

我怀疑4.3.0 SDK的Graph API版本,但你的建议可能会让我感到天堂。

1 个答案:

答案 0 :(得分:-1)

一如既往,我解决了自己的问题。

我应该在下面填写我想要的参数:

<c:forEach items="${myList}" var="element"> 
  <tr>
    <td>${element.status}</td>
    <td>${element.requestType}</td>
    <td>${element.requestedFor}</td>
    <td>${element.timeSubmitted}</td>
  </tr>
</c:forEach>