当我尝试从Facebook获取用户个人资料数据时,为什么我会收到无效令牌" me"

时间:2016-01-20 05:34:18

标签: android facebook facebook-graph-api

我正在制作包含facebook登录功能的应用程序,在Facebook登录后我想获取用户的个人资料信息。

所以,我的问题是我可以在Facebook上成功登录但登录后当我尝试获取用户的个人资料时,我得到无效令牌"我" 错误来自主页。

使用此代码的代码是:

    public void userLogin() {

        final LoginManager loginManager = LoginManager.getInstance();

        loginManager.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
            getProfileInformation(loginResult);
            Log.v("LoginActivity", "SuccessFull");
        }

        @Override
        public void onCancel() {
            // App code
            Log.v("LoginActivity", "cancel");
        }

        @Override
        public void onError(FacebookException exception) {
            // App code
            Log.v("LoginActivity", exception.getCause().toString());
        }
    });
}

public void getProfileInformation(LoginResult loginResult) {

    GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
        @Override
        public void onCompleted(JSONObject object, GraphResponse response) {

            Log.d("Error Message", response.getError().getErrorMessage());

            try {
                String userId = object.getString("id"); //getting error in this line
            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
    });

    Bundle parameters = new Bundle();
    parameters.putString("id", "id,name,link");
    request.setParameters(parameters);
    request.executeAsync();
}

提前致谢。

1 个答案:

答案 0 :(得分:0)

更改此Bundle参数

parameters.putString("id", "id,name,link");

parameters.putString("fields", "id,name,link");