使用Facebook的SDK的外部网站不能使用Canvas应用程序做什么?

时间:2013-06-06 01:51:36

标签: facebook facebook-graph-api facebook-javascript-sdk facebook-canvas

我已多次阅读Facebook's documentation for Canvas apps,但我很难说哪些功能仅适用于Canvas应用,哪些功能也适用于使用JavaScript SDK的非Facebook网站。< / p>

例如,Canvas文档通过Feed对话框和图形API提及书签,搜索和发布到新闻Feed。但是你可以通过使用Facebook登录API和Feed Dialog API在非Facebook网站上获得所有这些,而不是Canvas应用程序。

那么,究竟是什么 Canvas的功能呢? Canvas应用程序可以做什么,普通网站不能做什么?

2 个答案:

答案 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"
      }
    }