我已多次阅读Facebook's documentation for Canvas apps,但我很难说哪些功能仅适用于Canvas应用,哪些功能也适用于使用JavaScript SDK的非Facebook网站。< / p>
例如,Canvas文档通过Feed对话框和图形API提及书签,搜索和发布到新闻Feed。但是你可以通过使用Facebook登录API和Feed Dialog API在非Facebook网站上获得所有这些,而不是Canvas应用程序。
那么,究竟是什么 Canvas的功能呢? Canvas应用程序可以做什么,普通网站不能做什么?
答案 0 :(得分:12)
明显不同的是,Canvas应用程序存在于Facebook页面上,而外部应用程序存在于您自己的网站上。
更令人惊讶的差异与Facebook's Platform Policies有关,因为它们适用于定义为“游戏”的应用。
特别是,根据9.2.a,有一条规则仅适用于外部Facebook网站上的游戏:
Facebook.com以外的桌面网络游戏只能使用Facebook登录 (Authentication,不包括朋友列表等用户连接), Social Plugins并发布(例如,Feed对话,流发布或 打开图表)。在进行身份验证时,这些游戏可能无法请求 additional permissions除了年龄,电子邮件和我们的发布 权限。
如果您是使用Facebook SDK的外部网站,您可以执行以上所有操作,但如果您的外部网站是游戏,如果您尝试申请其他权限,则会违反Facebook的条款,阅读玩家的朋友列表,或使用其他Facebook API。
如果您的应用是游戏,并且您希望完全访问Facebook的API,则必须将外部网站转换为Canvas应用,然后您必须遵循其他Facebook的规则(尤其值得注意的是:您必须接受Facebook Credits专属,这使Facebook的应用内收入减少了30%。
如果您是非游戏应用,那么成为Canvas应用的唯一好处就是facebook.com网址。
(你自己有责任告诉Facebook你是否是一个游戏;可以通过配置你的游戏来使用非游戏应用程序类别欺骗Facebook。但如果你的游戏受欢迎,Facebook会注意到并且因违反他们的条款而惩罚你,所以不要这样做。)
答案 1 :(得分:0)
这不是唯一的优势。 以下是FB Graph API(v2.10)
的直接消息 {
"error": {
"message": "(#200) Only web canvas apps can send app notifications",
"type": "OAuthException",
"code": 200,
"fbtrace_id": "EkUFajtj0Iq"
}
}