我正在尝试使用Facebook Graph API获取用户详细信息,但我没有得到预期的结果。为了让自己更清楚,我正在陈述我所遵循的步骤。
这是我的代码段。
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Toast.makeText(LoginActivity.this, loginResult.getAccessToken().toString(), Toast.LENGTH_LONG).show();
Log.d("test", loginResult.getAccessToken().toString());
GraphRequest graphRequest = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
Log.d("response", response.toString());
}
});
}
}
使用密钥&#34;响应&#34;的日志id没有被打印,显然GrapRequest没有调用onComplete方法。 在此先感谢。
答案 0 :(得分:0)
上面的代码没有执行GraphRequest,因为你没有在graphRequest对象上调用executeAsync()方法。
<强> graphRequest.executeAsync(); //您必须将此行添加到代码中
修改后,您的代码看起来像
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Toast.makeText(LoginActivity.this, loginResult.getAccessToken().toString(), Toast.LENGTH_LONG).show();
Log.d("test", loginResult.getAccessToken().toString());
GraphRequest graphRequest = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
Log.d("response", response.toString());
}
});
graphRequest.executeAsync(); // You have to add this line to your code
}
}