[英]Android CallbackManager call back stopped working after upgrading to Facebook SDK 12.0.0 (Or 13)
我有一個 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) {
....
}
在我的活動 class 中,我有以下代碼:
@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。
因此我的登錄過程被打破了。
任何人都有同樣的問題,是解決方案嗎?
根據帖子: How to use Facebook Sign in CallbackManager with onActivityResult deprecated?
好像Facebook Android SDK 12、使用方法
onActivityResult
已棄用。 從今天開始,我發布了這個問題(2/March/2022),Facebook 官方開發者文檔: https://developers.facebook.com/docs/facebook-login/android/#9--register-a-callback還在告訴大家老辦法Facebook登錄。
我希望這篇文章可以幫助其他面臨同樣問題的人。
以下是解決方案
解決方案:
消除
callbackManager.onActivityResult(requestCode, resultCode, data); 來自 onActivityResult
使用權限設置您的 Facebook 按鈕
LoginButton mLoginButton = findViewById(R.id.login_button); mLoginButton.setPermissions(Arrays.asList("public_profile", "email"));
將 LoginManager 替換為您的 LoginButton 實例。 改變:
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback() { 更改為:
mLoginButton.registerCallback(callbackManager, new FacebookCallback() {
Emil 的評論是正確的,我們不能將 loginButton 解決方案與 LoginManger 一起使用。 但經過幾個小時的實驗,我通過降級依賴版本解決了這個問題,請參考: https://stackoverflow.com/a/74490644/13694485
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.