如果我的应用程序是iFrame应用程序(PHP),我可以在页面中使用FBML还是需要使用XFBML?如果我需要使用XFBML,是否有一个我可以查看的片段存储库?
我想添加一个朋友选择器框.例如,欢迎使用该应用程序,选择一个对象,将其发送给20个朋友.
您会认为朋友选择器将成为Facebook应用程序的库存组件,但显然不是.
我可以使用FBQL和CSS来定义我自己的,但标准和一致性不是很好吗?
是否有一个明确的,从头开始,易于遵循Facebook应用程序开发人员教程,涵盖FBML标签,XFBML标签以及带有示例的地方?
解决方法
答案是肯定的,你绝对可以在IFrame应用程序中使用FBML.我经常这样做. Facebook正在模糊IFrame应用程序和使用XFBML的FBML应用程序之间的界限,这很棒.基本上,XFBML只是常规FBML,除了它通过Facebook Connect javascript库解析和呈现.因此,在渲染FBML控件之前会看到一些延迟,但通常这不是一个大问题.
我将举例说明直接从我的一个IFrame应用加载朋友选择器.你会看到它被fb:serverfbml个标签所包围,你需要渲染几个更复杂的FBML标签. XFBML wiki page上列出了不需要fb:serverfbml标记的FBML项目.
无论如何,一些代码:
<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>
使用所有嵌套标记转义引号有点棘手,因此您必须观察它.您可以看到我的示例来自程序,我在那里留下了一个htmlspecialchars()转义调用,仅用于说明目的(即使该特定字符串不需要转义).
无论如何,如果你已经为你的IFrame应用程序安装了Facebook Connect,那么这应该可以进行一些调整.如果您尚未安装Facebook Connect,请按照XFBML wiki page上的渲染XFBML说明进行操作.