2011-08-31 107 views
13

我剛開始發現Facebook Connect身份驗證有問題。如果我安裝了iOS應用程序的3.4.4版,我的代理的fbDidNotLogin方法會被調用,並顯示錯誤消息「用戶拒絕了您的請求」。當我卸載FB應用程序時,驗證工作正常。有沒有人看到這個?有誰知道我可以繞過這個bug嗎?安裝Facebook應用程序時身份驗證失敗(iOS)

這裏是我的呼籲Facebook的對象:

[[app facebook] authorize:[NSArray arrayWithObjects: 
          @"publish_stream", @"offline_access", nil] 
          delegate:app]; 
+2

更新:我從今天下載的最新示例應用程序中獲得了相同的行爲。我插入了我的應用程序ID,並且始終調用示例應用程序的fbDidNotLogin委託方法。 –

+0

你能否看看這個以及:http://stackoverflow.com/questions/30612701/ios-facebook-sdk-your-apps-facebook-login-is-broken – iYoung

回答

15

確保您的應用程序捆綁ID在您的應用程序的Facebook頁面上正確設置。

我認爲他們剛剛開始強制執行此操作,這就是爲什麼它剛剛破裂。

您應該可以通過在Facebook上進入您的應用程序設置並點擊屏幕上的「編輯設置」來更改此設置。 'Mobile Native'部分將允許您更改iOS Bundle ID以匹配Info.plist中的Bundle標識符。

希望這可以幫助別人!知道你可以使用最新的Facebook應用程序工作,這可能是一個像上面描述的配置問題。

+1

賓果。感謝指針。我不認爲使facebook整合更糟糕(對於在Facebook應用程序中登錄的用戶更容易) Bundle ID是區分大小寫的,這是我的問題。奇怪的是,它的行爲有所不同,具體取決於你安裝的FB應用程序版本。我期望這種強制執行是Facebook服務器端邏輯功能,而不是客戶端 –

+0

@Steve - 這種驗證需要客戶端的支持,因爲它是客戶端可以(並且必須)發送(或接收)bundle-id進行驗證。執行很可能在服務器端本身。只要他們允許舊版本的FB應用程序工作,而無需對其他應用程序進行bundle-id驗證。否則,每一個iOS FB應用程序的安裝都必須更新以使任何其他FB連接應用程序正常工作,這當然是不可取的。 – brahmana

+0

這很有道理,儘管它們一直都在發送包ID信息。他們顯然仍然不會將捆綁ID發送到非應用程序驗證實現,因此它不一致。然而,我仍然對Facebook不滿意:(1)沒有向開發者發送關於政策變更的電子郵件,讓我們知道應該檢查什麼(當然他們知道我們的電子郵件地址);(2)給出一個非描述性的錯誤信息(「用戶拒絕你的請求」 - 不,如果它是「iOS Bundle ID不匹配」,它將很容易追蹤)。 –

4

我可以確認我在這裏遇到了同樣的問題。我backtraced了一下,我看到了Facebook應用程序與此查詢字符串打開我的應用程序中的網址:

ERROR_REASON =用戶%5Fdenied &錯誤=訪問%5Fdenied & ERROR_DESCRIPTION =的%2Buser%2Bdenied%2Byour %2Brequest%2E%3F%5F

我想不幸的是我們沒有什麼可以做,但等待:S

+0

不幸的是使用webView替代方案連接應用程序是不是我的解決方案。我認爲通過發送更新到蘋果是一個好主意:( –

0

正如this thread指出的那樣,你可以強制FBConnect使用Safari瀏覽器對話框,而不是快速的應用程序切換到安裝的FB應用程序。只需註釋掉Facebook.m中的代碼塊即可調用FB應用程序。

這是繞過FB錯誤的一種方式,直到他們修復他們的應用程序。這不是一個理想的解決方案,但它的工作原理。

1

這很明顯,但如果您的應用程序是沙盒,那麼您需要確保在Facebook應用程序設置中使用它登錄的所有人都是「測試人員」或更高級別的人員。 : - $