Facebook registerCallBack 方法未启动 [英] Facebook registerCallBack method not initiated
本文介绍了Facebook registerCallBack 方法未启动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用以下代码通过我的 Android 应用程序获取 Facebook 用户详细信息.
I'm using the following code for fetching Facebook user details through my Android application.
callbackManager = CallbackManager.Factory.create();
fb = (Button) findViewById(R.id.fb);
loginButton = (LoginButton) findViewById(R.id.login_button);
List < String > permissionNeeds = Arrays.asList("user_photos", "email",
"user_birthday", "public_profile", "AccessToken");
loginButton.registerCallback(callbackManager,
new FacebookCallback < LoginResult > () {@Override
public void onSuccess(LoginResult loginResult) {
System.out.println("onSuccess");
String accessToken = loginResult.getAccessToken()
.getToken();
Log.i("accessToken", accessToken);
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {@Override
public void onCompleted(JSONObject object,
GraphResponse response) {
Log.i("LoginActivity",
response.toString());
try {
id = object.getString("id");
try {
Log.i("profile_pic",
profile_pic + "");
} catch (MalformedURLException e) {
e.printStackTrace();
}
name = object.getString("name");
email = object.getString("email");
gender = object.getString("gender");
birthday = object.getString("birthday");
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields",
"id,name,email,gender, birthday");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
System.out.println("onCancel");
}
@Override
public void onError(FacebookException exception) {
System.out.println("onError");
Log.v("LoginActivity", exception.getCause().toString());
}
});
@Override
protected void onActivityResult
(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
Log.i("onActivityResult", "onActivityResult");
}
这里打印了 onActivityResult 里面的日志,而 loginButton.registerCallback(callbackManager, new FacebookCallback
根本没有启动.这个方法里面的日志都没有打印出来.有什么问题?
Here, the log inside the onActivityResult is printed, while the loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>()
is not at all initiated. None of the logs inside this method is printed.
What is the problem?
推荐答案
我通过放置解决了问题
callbackManager = CallbackManager.Factory.create();
上面的setContentView();
above the setContentView();
这篇关于Facebook registerCallBack 方法未启动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文