簡體   English   中英

解析SDK的Android Facebook SDK登錄問題

[英]Android Facebook SDK login issue with parse sdk

使用LoginManager類登錄時出現奇怪的問題。 我正在從片段中調用LoginManager.getInstance().logInWithReadPermissions(..) ,以使用所需的權限登錄。

我已盡力調試,發現返回到此片段的父活動的onActivityResult的回調請求代碼是錯誤的。 以下代碼來自LoginManager類,該類使用某些請求代碼注冊了登錄回調。

...
CallbackManagerImpl.registerStaticCallback(
              CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode(),
              new CallbackManagerImpl.Callback() {
                 @Override
                 public boolean onActivityResult(int resultCode, Intent data) {
                   return LoginManager.this.onActivityResult(resultCode, data);
                 }
              }
      );
...

但是,當它調用活動的onActivityResult時,它不是CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode()而是其他東西,例如double。 例如,當我嘗試調試並檢查值時,它是這樣的:

CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode()= 64206

活動類中收到的requestCode = 129742

現在正因為如此,當callbackManager嘗試調用onActivityResult時,

callbackManager.onActivityResult(requestCode,resultCode,data);

有了這個requestCode,它從地圖上找不到繼續前進的logincallback,它就在那里停了下來。 我不知道為什么會發生這種情況,因為我正在使用ParseFacebookSDK,並且當我使用ParseFacebookUtils.logInWithReadPermissionsInBackground(..)登錄時,它可以完美地工作。 以下是gradle依賴項。

...
compile 'com.facebook.android:facebook-android-sdk:4.7.0'
compile('com.parse:parse-android:1.13.0') {
        exclude group: 'com.parse.bolts',
                module: 'bolts-tasks'
    }
compile 'com.parse:parsefacebookutils-v4-android:1.10.3@aar'
...

如果可以幫助,將不勝感激。 謝謝。

更新:

當我嘗試從父級活動而不是片段登錄Facebook時,它對我有用,這次它在活動的onActivityResult中返回了正確的請求代碼,並且很簡單。 這已經解決了我的問題,但仍然想在這里了解片段的問題,因此,如果您知道,請分享您的想法。 謝謝。

在用戶已登錄的情況下嘗試調用ParseFacebookUtils.logInWithReadPermissionsInBackground是不正確的,這可能就是為什么您沒有獲得回調的原因。

如果您的用戶已經登錄但未鏈接到Facebook,則調用的正確函數是ParseFacebookUtils.linkWithReadPermissionsInBackground ,這意味着您希望將用戶鏈接到Facebook,而不是登錄到您的應用程序(因為他已經登錄)。 在文檔中查看一下。

如果要從片段中調用LoginManager.getInstance().logInWithReadPermissions(..) ,則期望在片段的onActivityResult中接收正確的請求代碼,而不是活動的onActivityResult

這里 片段具有自己的“ onActivityResult”方法。 他們不必為此而依賴活動。

不一定需要任何UI的東西還是自己提供了此方法,這不是很棒嗎:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM