有從facebook平臺獲取訪問令牌錯誤的可靠方法嗎?Facebook的可靠性圖形錯誤消息
我們的iOS/Android應用程序需要保存用戶的Facebook會話。這很好,除了我們從Facebook獲得的身份驗證錯誤似乎不一致。基本上,如果我們從Facebook得到一個錯誤,我們想知道這是否需要用戶重新進行驗證,或者是否由於間歇性錯誤(即由於某種原因它們受到速率限制)。
大多數facebook圖形錯誤似乎包含錯誤消息文本正文中的錯誤代碼。有些人不會。
例如
{ 「錯誤」:{ 「消息」: 「錯誤驗證接入令牌:會話是無效的,因爲該用戶註銷。」, 「類型」: 「OAuthException」}}
不包含錯誤代碼,因此檢查此錯誤的唯一方法是對「消息」進行字符串比較。這似乎是一個非常不可靠的檢查錯誤的方法。
似乎〜幾乎可以檢查json字符串中的「type」變量是否指示「OAuthException」,除非用戶受速率限制,那麼也會拋出OAuthException,但它不會不要求用戶重新登錄,它只需要他們稍等片刻,並停止發佈這麼多。
我已經看到了如何在這裏列出:https://developers.facebook.com/blog/post/500但仍然有問題,我的遊戲將需要用戶重新登錄Facebook,如果他們碰巧過分熱衷於張貼到他們的牆上。
那麼,有沒有從Facebook平臺獲取錯誤的可靠方法?
現在我可以找到的最佳解決方案是解析錯誤代碼的消息字符串,如果我找不到任何然後重新分析尋找特定消息的字符串(如「驗證訪問令牌的錯誤」),然後最後如果我無法確定錯誤是什麼,只需恐慌並將用戶註銷。
現在我要保守了。我會假設任何OAuthException都需要用戶註銷,除非我可以確認這個異常不需要這個。 基本上這意味着測試我所知道的「安全」異常並向用戶提供反饋。這仍然意味着用戶可能會得到很多「抱歉,您必須重新登錄」。 – agenttom
對於任何感興趣的,這裏是一個常見錯誤響應的簡短列表: '「會話在unix時間SOME_TIME已過期,當前的unix時間是SOME_TIME.' '」會話已失效,因爲用戶已更改「 '」驗證訪問令牌時出錯:USER_ID未授權應用程序APP_ID「」 '「驗證訪問令牌時出錯:會話無效,因爲用戶已註銷」「 '」必須使用有效的訪問令牌查詢關於當前用戶的信息「' – agenttom
,最後您可以測試以查看錯誤消息是否包含字符串(#341)以測試用戶是否受限速。如果他們受速率限制,則不需要重新驗證(它似乎)但只有一些反饋,他們應該停止張貼這麼多。 – agenttom