2012-02-02 95 views
1

我過去曾經開發過幾個FB應用程序(使用舊的API),現在我正在考慮通過將它們移植到新的3.1 API中來讓它們再次變得可用。使用FaceBook 3.1 API的畫布應用程序?

聽起來不錯,但由於某種原因,這是後難度比我的應該是...

因此,這裏有幾個問題:

  • 是否有使用3.1 API畫布應用程序的任何實例?谷歌沒有給我任何有用的東西
  • iframe和FMBL canvas應用程序仍然有區別嗎?在我的應用程序設置中,我檢查了fmbl選項,但是當我回到應用程序概述頁面時,它仍然表示它是一個iframe應用程序。
  • SDK提到getUser()函數來獲取用戶標識,但是如何爲我的應用程序請求必要的權限?當我做一些Google搜索時,我發現甚至另一個解決方案,它調用一個特定的網址,然後執行回調。然而,這個解決方案似乎並不是php sdk!
  • php-api的文檔在哪裏?我找到的唯一有用的東西是:https://github.com/facebook/php-sdk,它只包含幾行代碼。我懷疑這是因爲您在自己的網站上有一個fb登錄按鈕,而不是一個畫布應用程序。

回答

4

首先,祝你好運,祝好 - 你需要它。維護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是你的朋友。

+0

感謝此信息。我現在懷疑,如果我甚至應該嘗試移植它:第 – 2012-02-03 08:43:22

+0

哈,是的,這是我的目標 - 澄清它不只是更新幾個電話。如果這對你是值得的,那就去做吧,這將是一個很好的(如果可能令人沮喪的)學習經驗和所有。我有一個重要的用戶羣,就像我說的,我現在正在將我的應用程序重新編寫爲外部網站。它最終也可能有一個Facebook iFrame,但它不像更新幾個電話那麼簡單。 – cincodenada 2012-02-03 23:49:41