Facebook registerCallBack方法未启动 [英] Facebook registerCallBack method not initiated
本文介绍了Facebook registerCallBack方法未启动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
callbackManager = CallbackManager.Factory。创建();
fb =(Button)findViewById(R.id.fb);
loginButton =(LoginButton)findViewById(R.id.login_button);
列表<字符串> 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响应){
Log.i(LoginActivity,
response.toString());
try {
id = object.getString(id );
try {
Log.i(profile_pic,
profile_pic +);
} catch(MalformedURLException e){
e.printSt ackTrace();
}
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,新的FacebookCallback< LoginResult>()
并没有被启动,没有打印此方法中的日志
这是什么问题? >
解决方案
我通过将
callbackManager = CallbackManager.Factory.create();
setContentView();
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");
}
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?
解决方案
I solved the problem by placing
callbackManager = CallbackManager.Factory.create();
above the setContentView();
这篇关于Facebook registerCallBack方法未启动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文