我正致力于编写一个小型Facebook应用程序,仅用于娱乐和学习。不幸的是,Facebook开发者文档,维基和样本还有很多不足之处。
如果我的应用程序是iFrame应用程序(PHP),我可以在页面中使用FBML还是需要使用XFBML?如果我需要使用XFBML,是否有一个我可以查看的片段存储库?
我想添加一个朋友选择器框。例如,欢迎使用该应用,选择一个对象,将其发送给20位朋友。
您会认为朋友选择器会成为Facebook应用的股票组件,但显然不是。
我可以使用FBQL和CSS来定义我自己的,但标准和一致性不是很好吗?
是否有一个明确的,从头开始,易于遵循Facebook应用程序开发人员教程,涵盖了FBML标签,XFBML标签以及带示例的地方?
答案 0 :(得分:8)
我想在我对Facebook问题的每一个答案中,我都提到“Facebook文档很糟糕,所以如果你找不到东西,不要感觉不好。”
答案是肯定的,你绝对可以在IFrame应用程序中使用FBML。我经常这样做。 Facebook正在模糊IFrame应用程序和使用XFBML的FBML应用程序之间的界限,这很棒。基本上,XFBML只是常规FBML,除了它通过Facebook Connect javascript库解析和呈现。因此,在呈现FBML控件之前会看到一些延迟,但通常这不是一个大问题。
我将举例说明直接从我的一个IFrame应用加载朋友选择器。您会看到它被fb:serverfbml标记包围,您需要渲染几个更复杂的FBML标记。 不需要fb:serverfbml标记的FBML项目列在XFBML wiki page上。
无论如何,一些代码:
<fb:serverfbml style="width: 650px;">
<script type="text/fbml">
<fb:fbml>
<fb:request-form
action="http://my.app.com/invite/sent"
method="POST"
invite="true"
type="My App Name"
content="You should use My App Name. All the cool kids are doing it.
<fb:req-choice url='http://apps.facebook.com/my-app'
label='<?php
echo htmlspecialchars("That sounds sweet!",ENT_QUOTES);
?>'
/>
" >
<fb:multi-friend-selector
showborder="false"
actiontext="Invite your friends to use My App Name."
exclude_ids="1234556,465555"
rows="3"
/>
</fb:request-form>
</fb:fbml>
</script>
</fb:serverfbml>
使用所有嵌套标记转义引号有点棘手,因此您必须观察它。您可以看到我的示例来自PHP应用程序,我在那里留下了一个htmlspecialchars()
转义调用,仅用于说明目的(即使该特定字符串不需要转义)。
无论如何,如果你已经为你的IFrame应用程序安装了Facebook Connect,那么这应该可以进行一些调整。如果您尚未安装Facebook Connect,请按照XFBML wiki page上的渲染XFBML说明进行操作。