我们如何让用户添加我们的应用程序作为他们的个人资料中的选项卡?
我们目前在作品中有一个基于iframe的Facebook画布应用程序。画布部分工作正常,并没有真正触及Facebook API,因为我们并不需要用户访问其社交图的任何权限;我们使用的数据完全来自Facebook之外。我们如何让用户添加我们的应用程序作为他们的个人资料中的选项卡?
我们想要做的是允许用户将我们的应用程序的FBML版本作为选项卡添加到他们的配置文件中。但是,我们不清楚我们应该如何使用当前的Facebook API来启用该功能。
画布页面和回调设置已设置并正常工作,我们目前在我们的应用程序设置中设置了标签名称和URL(并直接点击标签URL将加载我们的最小测试页面),但没有显而易见的方式为用户提供将此选项卡添加到其配置文件的功能。
我们最初的想法是,我们将需要添加XFBML我们自己的“添加配置文件选项卡”按钮,在http://wiki.developers.facebook.com/index.php/Fb:add-profile-tab
但是提到,即使我们降低iframe来作为准系统作为
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
<script src="http://static.ak.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/en_US" type="text/javascript"></script>
<fb:add-profile-tab></fb:add-profile-tab>
<script type="text/javascript">
FB.init("<our secret key>", "xd_receiver.htm");
</script>
</body>
</html>
东西
xfbml元素无法呈现。 Safari和Chrome都在控制台中列出了以下错误:“不安全的JavaScript尝试从URL [我们的iframe加载来的URL]的框架中使用URL [我们在Facebook上的应用URL]访问框架。域,协议和端口必须匹配。
我们确实在应用程序设置页面的连接选项卡中有连接URL指向我们的应用程序。该xd_receiver.htm文件位于同一目录中的iframe页面,并对其内容的
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<script src="http://static.ak.facebook.com/js/api_lib/v0.4/XdCommReceiver.js" type="text/javascript"></script>
</body>
</html>
这似乎是什么都相关文件的建议。浏览器肯定会通过相关的调试窗格(web检查器,萤火虫等)加载它。
所以问题是,这是正确的方式去添加“添加到配置文件选项卡”功能到我们的应用程序?如果是这样,我们如何解决跨域错误?如果不是,我们应该怎么做呢?目前的文档似乎主要集中在图形和身份验证API上,这两者都没有提到配置文件选项卡。
原来<fb:add-profile-tab>
根本不使用户不用先允许应用程序通过什么连接到他们像<fb:login-button>
在你的应用程序设置,确保这些设置:
- 画布>
- 画布页面URL
- 帆布回调URL
- 文件>
- 标签名字
- 标签URL
的标签请求会转到{画布回调URL}/{标签URL}。然后像这样的东西应该工作:http://apps.facebook.com/fbrelll/xfbml/fb:add-profile-tab
这是使用更新的JS SDK。我无法发布更多的链接,但开发者网站和github存储库有关于SDK的有用信息。
所以我们肯定都填写了这些设置,我们正在尝试使用该标签。然而,按钮从来没有呈现,而控制台只是报告这个“不安全的JavaScript尝试从URL [我们的iframe加载来的URL]的框架URL [我们在Facebook上的应用URL]访问框架。域,协议和端口必须匹配。错误。 – mbarnett 2010-07-10 21:17:33
该错误是一个红鲱鱼 - WebKit是偏执狂,并将记录该“错误”的合法用例,其中一个catch块应该消耗它。即使在我的例子中,一切都按预期工作,你会注意到这个错误。查看您的问题的实时备案可以帮助您查看正在发生的事情。 – daaku 2010-07-11 02:50:57