2

我正在使用Android Facebook SDK在Android應用程序上開發Facebook集成。恆定的Facebook SDK http.protocol.ApiException在瀏覽器中關閉「Platform off」後登錄

我記錄我的用戶使用Facebook的Android文檔中描述的Session.openActiveSession(this, true, facebookSessionChangeCb);調用。

大多數作品出色。但有一個問題,像這樣的repros:

1)我在我的Android設備上安裝本地Facebook應用程序,然後登錄本機應用程序。

2)我還在互聯網瀏覽器上瀏覽設置並關閉平臺,如下面的屏幕截圖所示。

3)然後我嘗試通過使用Android Facebook SDK與Facebook集成登錄我的原生Android應用程序。

然後我得到堆棧跟蹤

02-13 15:27:54.687: W/fb4a(:<default>):BlueServiceQueue(16890): Exception during service 
02-13 15:27:54.687: W/fb4a(:<default>):BlueServiceQueue(16890):   com.facebook.http.protocol.ApiException: Service temporarily unavailable 
02-13 15:27:54.687: W/fb4a(:<default>):BlueServiceQueue(16890): at  com.facebook.http.protocol.ApiResponseChecker.b(ApiResponseChecker.java:83) 
02-13 15:27:54.687: W/fb4a(:<default>):BlueServiceQueue(16890): at com.facebook.http.protocol.ApiResponseChecker.a(ApiResponseChecker.java:162) 
02-13 15:27:54.687: W/fb4a(:<default>):BlueServiceQueue(16890): at com.facebook.http.protocol.ApiResponse.g(ApiResponse.java:158) 
02-13 15:27:54.687: W/fb4a(:<default>):BlueServiceQueue(16890): at com.facebook.platform.auth.server.AuthorizeAppMethod.a(AuthorizeAppMethod.java:274) 
... 
02-12 18:36:42.928: W/fb4a(:<default>):GDPDialog(5750): Failed to send 
02-12 18:36:42.928: W/fb4a(:<default>):GDPDialog(5750): com.facebook.fbservice.service.ServiceException: API_ERROR: API_ERROR 
02-12 18:36:42.928: W/fb4a(:<default>):GDPDialog(5750): at com.facebook.fbservice.ops.BlueServiceOperation.c(BlueServiceOperation.java:640) 

此異常聲稱是一個暫時不可用類型的異常,但它顯然不是因爲它無限期地保持這種方式。

這是一個問題:我不想把它當作503一樣對待,因爲它總是會失敗,我最終會通過可怕的錯誤消息向用戶發送消息,或者更糟 a 「稍後再試」,正如例外情況所表明的那樣,這只是誤導用戶。

問題是:我做錯了什麼?我在某種程度上變暗了嗎?如果沒有,是否有解決方法?有沒有人有過這個問題?我無法在SO上找到這個堆棧。如果這是正常的,人們如何在這裏向用戶發送消息?而且重要的是,我們可以將這種情況與真正的臨時服務情況區分開來,這樣我可以告訴我的用戶出了什麼問題?

非常感謝!


(低於截圖,所以你知道我指的是)

That screenshot

回答

2

一個月現在,看起來這的確是不可避免的!

能夠在瀏覽器中關閉「平臺」是Facebook隱私服務的一部分。它經常被引用作爲能夠隱藏應用邀請等的一種方式。

我最好的猜測是,給出一個狀態代碼並不能表明用戶做了什麼輕量安全措施將用戶遠離應用程序。

一個很好的解決方案是,如果有的話,在您的文檔中添加一個關於Facebook平臺設置的部分。