2012-04-10 83 views
1

我爲了代表用戶訪問Facebook API,必須獲得OAuth access_token,該流程有充分的文檔記錄(儘管它似乎是來自FB的一些無證的要求),但有時我會得到這個「錯誤驗證驗證碼」。當試圖交換access_token的驗證碼時。「驗證驗證碼時出錯。」當請求access_token

似乎有很多人有這樣的麻煩,大部分時間redirect_uri似乎是問題,但在這裏redirect_uri沒問題(它與傳遞給auth對話的完全一樣,以一個斜線,沒有時髦的字符或尾隨的查詢字符串,我讀了幾乎所有關於這個問題的線程,並沒有提出的解決方案確實解決了我的問題)

什麼是最有趣的是,當我檢查我日誌,在那裏我寫了我使用的確切的請求url,並手動嘗試獲取訪問令牌,然後運行。這就好像請求在用戶登錄時失敗,但在一段時間後仍然有效。

所以它畢竟工作的事實似乎表明請求是好的,但在Facebook方面存在問題,就像如果有一些複製涉及在auth對話執行之間沒有完成事情,我嘗試將代碼換成令牌。

我建立了一個重試機制,希望兩個電話之間的延遲將足以和第二個電話會成功,但它也不管用。

而且,它的工作大部分時間,我無法講出它的工作原理,當它出現故障時,只有用戶變化之間有什麼區別。

任何建議將不勝感激。

+0

僅供參考,它會更容易,如果你提到的前期,你在談論Facebook的API來理解你的問題。 – 2012-04-11 03:33:33

+0

尼克,你說得對,我也可以告訴我你弄出來,因爲GAE標籤的樹林裏,當它在這裏並不適用(儘管它在GAE上運行) – 2012-04-11 06:45:57

+0

如果你嵌入到一個Facebook頁面,然後我發現簽名的請求路由更容易獲得oauth標記。然而,如果你在facebook上關閉(就像舊的臉書連接),那麼你堅持這種方法 - 你可以工作,但是有點挑剔。 – 2012-04-11 07:09:30

回答

0

我剛碰到這個問題就解決了。

問題是,我在oauth調用中指定redirect_uri爲http://apps.facebook.com/myapp/而不是https://apps.facebook.com/myapp/。這是一種奇怪的

的一件事是完全相同的工作參數,如果我進入他們到瀏覽器地址欄,而不是從應用程序的服務器端請求。

有可能在每個用戶的基礎上指定,如果你想瀏覽Facebook的有或無HTTPS,所以我建議你在這兩種模式下設置測試時,測試您的認證流程。

+0

聽起來不錯! – 2012-08-20 06:08:33