9

我已经多次阅读Facebook 的 Canvas 应用程序文档,但我很难说出哪些功能仅适用于 Canvas 应用程序,哪些功能也适用于使用 JavaScript SDK 的非 Facebook 网站。

例如,Canvas 文档提到了书签、搜索以及通过 Feed Dialog 和 Graph API 发布到 News Feed。但是您可以通过使用 Facebook 登录 API 和 Feed Dialog API 在非 Facebook 网站上获得所有这些信息,而无需使用 Canvas 应用程序。

那么, Canvas究竟有哪些特点呢?Canvas 应用程序能做哪些普通网站做不到的事情?

4

2 回答 2

12

明显的区别是 Canvas 应用程序存在于 Facebook 页面上,而外部应用程序存在于您自己的网站上。

更令人惊讶的差异与Facebook 的平台政策有关,因为它们适用于被定义为“游戏”的应用程序。

特别是,根据 9.2.a,有一条规则仅适用于外部 Facebook 网站上的游戏:

Facebook.com以外的桌面网页游戏只能使用 Facebook 登录(身份验证,不包括朋友列表等用户连接)、 社交插件和发布(例如,Feed Dialog、Stream Publish 或 Open Graph)。在进行身份验证时,这些游戏可能不会请求 年龄、电子邮件和我们的发布权限之外的其他权限。

如果您是使用 Facebook 的 SDK 的外部站点,则可以执行上述所有操作以及更多操作,但如果您的外部站点是游戏,则如果您尝试请求额外权限,您将违反 Facebook 的条款,请阅读玩家朋友列表,或使用其他 Facebook API。

如果您的应用是游戏,并且您希望完全访问 Facebook 的 API,则必须将您的外部网站转换为 Canvas 应用,然后您必须遵循 Facebook 的其他规则(特别值得注意的是:您必须专门接受 Facebook Credits,这给 Facebook 30% 的应用内收入分成)。

如果您是非游戏应用,那么成为 Canvas 应用的唯一好处就是 facebook.com URL。

(您自己有责任告诉 Facebook 您是否是游戏;通过将您的游戏配置为使用非游戏应用类别来欺骗 Facebook 是可能的。但如果您的游戏足够受欢迎,Facebook 会注意到并处罚你违反了他们的条款,所以不要这样做。)

于 2013-06-11T18:48:05.127 回答
0

这不是唯一的优势。这是直接来自 FB Graph API (v2.10) 的消息

    {
      "error": {
        "message": "(#200) Only web canvas apps can send app notifications",
        "type": "OAuthException",
        "code": 200,
        "fbtrace_id": "EkUFajtj0Iq"
      }
    }
于 2017-09-16T16:23:55.940 回答