我在Android应用中使用以下代码段,以允许用户使用Facebook登录我的应用:
public class FacebookLoginActivity extends AppCompatActivity {
private CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(this.getApplicationContext());
initCallback();
LoginManager.getInstance().logInWithReadPermissions(this, FacebookUtils.requiredPermissions);
}
private void initCallback() {
callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
AccessToken.setCurrentAccessToken(loginResult.getAccessToken());
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException exception) {
}
}
);
}
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
}
然而,由于定义的Callback方法永远不会被调用,所以它没有工作,我显示了facebook加载器并且我到达onActivityResult但是回调函数从未被调用过,有没有人知道可能是什么问题?提前谢谢。
答案 0 :(得分:0)
尝试以下代码:
{{1}}
答案 1 :(得分:0)
尝试此步骤。
为Variable
创建新的LoginButton
全局定义。
private LoginButton btnLogin;
然后在onCreate
添加此代码。
btnLogin.setReadPermissions(Arrays.asList("public_profile, email, user_birthday"));
callbackManager = CallbackManager.Factory.create();
同时更改此内容。
LoginManager.getInstance().registerCallback(callbackManager,
对此。
btnLogin.registerCallback(callbackManager,