首先,祝你好運,祝好 - 你需要它。維護Facebook應用程序的方式是,因爲Facebook不會相信傳統支持,會隨時更改內容,並且會快速完全棄用內容。作爲一個(前)Facebook應用程序開發人員,我可以告訴你只有一個常數:如果你讓他們獨處,應用程序將會死亡。作爲一名應用程序開發人員,Facebook欠你無用,而且在打破應用程序方面是惡毒的。
至於具體情況:截至2012年6月,Facebook有deprecated and removed FBML和REST API,並不再有帆布的應用程序和應用程序的iFrame之間任何區別。這不是一個軟弱的,「你不應該使用它」的貶低 - 這是一個困難的,「你的應用程序現在被打破」棄用。 全部應用程序現在是iFrame應用程序,因爲不再有任何其他方式來構建它們。有關如何構建canvas/iFrame應用程序的文檔是here,並且有一個auth migration guide可能有助於轉換。噢,如果你還沒有使用HTTPS,你也需要讓你的應用程序運行在HTTPS上。
至於其餘部分,它很糟糕,但您真正能夠維護並獲得應用程序的唯一方法是使用Open Graph API。 使用PHP SDK,您只需運行$facebook->api('/graph/url/here')
- 例如,獲取用戶信息,運行$facebook->api("/$userid")
。您可以從Open Graph文檔獲取URL - 只需抓住graph.facebook.com
位後的所有內容並將其傳遞給api()
即可。這是另一種學習曲線,並且(取決於代碼的複雜性/模塊化)是從很多到噩夢般的變化之中的任何地方,並且沒有替代品。有時你可以用使用舊的REST api,但是我懷疑它會持續很長的時間。這很痛苦,但事情就是這樣。你受Facebook的擺佈,因爲這是他們的數據。
升級應用程序涉及轉變思維:應用程序現在實際上只是Facebook chrome所包圍的網頁。現在有沒有區別使用Facebook的api拉入信息的外部網站和在Facebook內部運行的應用程序。基於這個原因,我個人認爲我已經轉移到了我自己的應用程序 - 一個外部網站,恰好使用Facebook的大部分發布/共享/用戶信息需求。
對於授權,您可以使用任意數量的方法通過OAuth請求權限。有關於如何做over on Facebook的文檔也是如此。特別是對於PHP API,您使用getLoginURL()生成URL,然後重定向到。 Facebook最終會重定向到您指定的URL,並提供有關他們是否授權您的應用的信息,之後您可以執行getUser()
。如果你想要花哨/光滑/用戶友好的彈出對話框而不需要一堆重定向,Javascript SDK是你的朋友。
感謝此信息。我現在懷疑,如果我甚至應該嘗試移植它:第 – 2012-02-03 08:43:22
哈,是的,這是我的目標 - 澄清它不只是更新幾個電話。如果這對你是值得的,那就去做吧,這將是一個很好的(如果可能令人沮喪的)學習經驗和所有。我有一個重要的用戶羣,就像我說的,我現在正在將我的應用程序重新編寫爲外部網站。它最終也可能有一個Facebook iFrame,但它不像更新幾個電話那麼簡單。 – cincodenada 2012-02-03 23:49:41