我正在制作包含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();
}
提前致谢。
答案 0 :(得分:0)
更改此Bundle参数
parameters.putString("id", "id,name,link");
到
parameters.putString("fields", "id,name,link");