明显的区别是 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 会注意到并处罚你违反了他们的条款,所以不要这样做。)