Android CallbackManager回调在升级到Facebook SDK 12.0.0(或13)后停止工作

new9mtju  于 2022-11-20  发布在  Android
关注(0)|答案(2)|浏览(153)

我有一个Android应用程序,可以通过Facebook登录。当我在Facebook SDK上时,一切都在工作

implementation 'com.facebook.android:facebook-android-sdk:11.1.1'

但是,最近我注意到在我的Gradle文件中有一个适用于Facebook SDK的更新,所以我将其更新为

implementation 'com.facebook.android:facebook-android-sdk:13.0.0'

然后问题就发生了。
在我有我的代码设置如下:

private void facebookSignInSetup() {
    //Facebook login setup
    callbackManager = CallbackManager.Factory.create();
    LoginManager.getInstance().registerCallback(callbackManager,
            new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                  ....
                }

在我的Activity类中,我有以下代码:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        callbackManager.onActivityResult(requestCode, resultCode, data);
        super.onActivityResult(requestCode, resultCode, data);
        ......
    }

当我在Facebook SDK 11.1.1上,用户通过Facebook登录后,方法:触发onActivityResult,然后触发已注册的FacebookCallback。
升级到Facebook SDK 13.0.0后(我尝试了12.0.0也有同样的问题),用户登录Facebook后,调用了onActivityResult,但没有调用FacebookCallback。
因此,我的登录过程中断。
任何人都有同样的问题,解决方案是什么?

rlcwz9us

rlcwz9us1#

根据帖子:How to use Facebook Sign in CallbackManager with onActivityResult deprecated?
看来Facebook Android SDK 12之后,使用的方法
活动结果
今天,我发布这个问题(2/March/2022),Facebook官方开发者文档:https://developers.facebook.com/docs/facebook-login/android/#9--register-a-callback仍然在告诉大家Facebook登录的老方法。
我希望这篇文章能帮助其他面临同样问题的人。
以下是解决方案
样本代码:https://github.com/facebook/facebook-android-sdk/blob/main/samples/FBLoginSample/src/main/java/com/facebook/fbloginsample/FacebookLoginActivity.java
解决方法:
1.移除
(请求代码,结果代码,数据);来自活动结果
1.设置您的Facebook按钮的权限
登录按钮mLoginButton =查找按标识查看(R.id.登录按钮);“公共配置文件”,“电子邮件”);
1.将LoginManager替换为您的LoginButton示例。更改:
登录管理器.getInstance().registerCallback(回调管理器,新的Facebook回调(){更改为:
注册回叫(回叫管理器,新的Facebook回叫(){

rnmwe5a2

rnmwe5a22#

Emil的评论是正确的,我们不能在LoginManger中使用loginButton解决方案。但是经过几个小时的实验,我通过降级依赖版本解决了这个问题,请参考:https://stackoverflow.com/a/74490644/13694485

相关问题