2013-01-04 67 views
32

我有一個在iOS和Android上運行的Phonegap應用程序。該應用程序有一個Facebook登錄功能,直到幾天前工作。我們的一些beta測試人員報告了「操作無法完成com.facebook.sdk錯誤2」錯誤。這些測試人員的設備各不相同:iPhone 5,iPhone 4s,iPod Touch,iOS 5.1.1和iOS 6.0。iOS上的com.facebook.sdk錯誤2

我們使用最新的Facebook SDK和一個Phonegap Facebook登錄插件(https://github.com/davejohnson/phonegap-plugin-facebook-connect/)。

我做了一些研究,發現爲什麼會發生這種錯誤的原因如下:

  • BundleIdentifier和BundleURLName在我的Info.plist文件沒有下設置本地iOS應用匹配包ID我的Facebook應用程序。
  • 該應用仍處於沙盒模式
  • 該應用在Facebook設置(設備的設置 - > Facebook - >允許這些應用使用您的帳戶)被禁用。
  • iOS 6.0不允許同時詢問讀寫權限(不確定是否有此權限)。

下面是這種情況:

  • 的PhoneGap的插件的建設者的應用程序不會出現在「允許這些應用使用您的帳戶」每個用戶的

    這是一個非常不一致的錯誤(在我的情況)。如果我在「允許這些應用使用您的帳戶」(在我的應用程序列在那裏)中關閉應用程序,我只能自己重現錯誤,但我可以通過再次允許該應用程序輕鬆修復錯誤。目前大多數測試人員沒有這個錯誤,但是錯誤仍然存​​在於iPod上(應用程序沒有在「允許這些應用程序使用您的賬戶」中列出)。

    有沒有人有任何想法,爲什麼我有這個錯誤?

  • +1

    這通常發生在oAuth失敗。只有當您請求讀取權限或寫入權限時纔會發生這種情況。我希望你不是同時要求他們。此外,它只會在使用Facebook應用程序或iOS6原生設置或m站點進行身份驗證時失敗。 –

    +0

    不,我不是要求同時閱讀和發佈權限。我不確定第二個問題。我怎樣才能找到這個? – saltandpepper

    回答

    17

    原來:com.facebook.sdk錯誤2可以翻譯成許多東西。我正在尋找某種Facebook SDK錯誤翻譯表,但我無法找到一個。在我的情況下: com.facebook.sdk錯誤2發生是因爲連接超時。發生此錯誤的用戶的網絡/ WiFi連接不良

    我們實現了一個錯誤日誌記錄系統,該系統在登錄到Facebook時每次發生錯誤時都會記錄錯誤詳細信息。在這些日誌中,我們可以看到com.facebook.sdk錯誤2發生了很多,但每當用戶在幾秒鐘後嘗試再次登錄時都會解決它。

    這可能是由於我無法找到正確的文檔,但我對這些SDK錯誤的模糊性感到非常沮喪。有許多關於權限詢問的文檔(這可能導致com.facebook.sdk錯誤2),但顯然這個錯誤可能是由更多的事情引起的。很高興看到這種記錄。

    +2

    它看起來像FBError.h文件包含定義Facebook錯誤代碼的枚舉,並且對應於2的錯誤標識符是FBErrorLoginFailedOrCancelled。 – devdavid

    +1

    那麼,這是一些澄清。但是,仍然是什麼導致'FBErrorLoginFailedOrCancelled'錯誤?這仍然是非常普遍的,並沒有對導致錯誤的原因做任何說明。所以我仍然認爲需要附帶的文檔才能找到這些錯誤的根源。 – saltandpepper

    +7

    就我而言,發生此錯誤是因爲該應用程序處於沙盒模式,而我使用的測試帳戶不是該應用程序的開發人員或管理員。 –

    3

    我一直在弄清楚這個錯誤的原因,只要我使用舊的iOS 5.0來處理更大的設備覆蓋率。我剛剛通過Facebook請求調試收到錯誤400。所以最後,我發現原因是未知的FBSessionDefaultAudience對於FBSession(測試在6.0+和本地Facebook API給我一個錯誤的原因)。當我用

    + (BOOL)openActiveSessionWithPublishPermissions:(NSArray*)publishPermissions 
               defaultAudience:(FBSessionDefaultAudience)defaultAudience 
                allowLoginUI:(BOOL)allowLoginUI 
               completionHandler:(FBSessionStateHandler)handler; 
    

    這個錯誤終於消失了。

    6

    這發生在我正在使用的應用程序中。我可以通過轉到我的iPhone設置,選擇Facebook,點擊我的名字,然後點擊「刪除帳戶」來避開它。

    之後,我可以在沒有問題的情況下使用該應用登錄。

    我回去設置| Facebook並重新提交我的憑據。

    該應用程序仍然正常工作。

    +0

    這花了我5小時的最佳部分。隊友的歡呼聲。廢話的事情是,它甚至不是一個'正確的'修復,所以我仍然不知道如何在代碼中處理這個問題。感謝至少解決了很大一部分頭痛的朋友! :) – SparkyRobinson

    5

    我忘了檢查本機iOS應用程序(在Facebook開發人員頁面中)並鍵入我的Bundle ID,它與您的Xcode項目中的Bundle標識符相同時發生此錯誤。 (包括最後的項目名稱)。我還在啓用SandBox模式的Facebook Developers Page中進行設置。我也禁用了Sandbox模式來完成這項工作。

    +0

    就像我在第一點和第二點以及第五點和第六點的問題中提到的,情況並非如此。 – saltandpepper

    0

    我們遇到了同樣的問題。事實證明,FB側的原因實際上處於超時狀態,特別是當「FB登錄」頁面仍然打開時發生超時,並且用戶單擊「取消」時。在那種情況下,錯誤2總是被重新調整。所以,如果你想重複和測試這種情況,只需在FB上連接時點擊「取消」按鈕即可。

    0

    在我的情況下,我用我的公司帳戶創建了應用程序,並忘記將我的個人資料添加到開發者角色中。在我發現一切順利之後。

    乾杯。

    1

    先試:

    Go to Settings app -> Facebook -> Your App -> Switch it off and back on again. 
    

    這個工作對我來說,並沒有要求我實際刪除FB賬號並重新登錄爲@ seans23建議。如果它沒有奏效,我會接下來嘗試,但這顯然確實重新設置了狀態。

    1

    這種方法適用於我。 (iOS版8)

    上下文:

    • FB 「登錄」 按鈕沒有打開FB的應用程序,也沒有FB在Safari
    • 彈出FB SDK犯錯。 2.
    • 「我的應用程序」未顯示在FB設置中以便啓用。

    解決辦法:

    • 清除Safari網頁緩存(也可能是可選的)
    • 刪除的Facebook應用程序
    • 刪除的Facebook Messenger的
    • 將應用程序安裝並登錄

    這個想法是刪除兩個 Facebook應用程序和Messenger。

    1

    對我來說,原因是我在模擬器上測試我的應用程序。我想分享一張照片,對話框沒有出現,所以我插入我的iPhone,一切順利!

    +0

    我從這個線索中學到的是,錯誤2可能意味着任何事情。這也是我的原因。有趣的是,我可以登錄,但遇到這個錯誤試圖分享。 – Robert

    相關問題