2012-02-02 99 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