2012-06-18 40 views
0

我的基於WordPress的網站(dev:volved.dyndns-blog.com)允許用戶通過Facebook邀請朋友。當通過fb.ui發送消息呼叫發送邀請時,會添加以下內容作爲鏈接參數。使用fb.ui發送帶參數的鏈接

http://volved.dyndns-blog.com/login/?action=register&invite_id= {3CBBBEB8-6ACF-4319-AF07-3B6C22C1091D}

的 「invite_id」 參數通常導致重定向。由於發現Facebook在看到重定向時將返回服務器錯誤500,因此我已更改代碼以檢測用戶代理中的'臉譜',而不是執行重定向。但是,fb.ui調用失敗。我的調試工作受到阻礙,因爲在某些情況下,FB甚至不會測試鏈接。它只是代碼500失敗。也許這是由於一些緩存。我還沒有想到這個模式,但似乎發生在我的網站的FB不成功之後。如果我稍後嘗試,我會看到FB擊中該網站。

  1. 是否有其他條件會導致fb.ui發送服務器500錯誤發送?
  2. FB是否會自動失敗後續嘗試而無需點擊請求站點?

回答

1

哇。謝謝Facebook工程師爲您節省5分鐘的文檔時間,以便我和其他人可以浪費數小時。我會報告我發現的。如果其他人發現更多或更準確的信息,請隨時發表評論。

事實證明,FB測試的OG:Url它接收到的時候去我的fb.ui發送鏈接http://my.domain/page/?invite=xyz

OG:url必須是「http://my.domain/page」。參數被忽略。不允許重定向。就我而言,任何時候頁面具有invite_id參數,它都會被重定向。檢查允許檢測FB機器人的請求的用戶代理。但是,我發現有時候,FB也會發送這個bitlybot。所以你也必須抓住這一點。如果將來使用不同的機器人,最有可能的事情將會中斷。

您有機會測試每個URL,因爲FB會緩存結果。如果再試一次,FB不會測試鏈接。如果fb.ui成功,它將繼續成功。否則它將繼續失敗。這個緩存持續了 - 我們只需要猜測。

希望這會有所幫助。時間再次提高生產力...