FBML可以在iFrame Facebook应用程序中使用吗?

时间:2009-08-09 17:23:31

标签: facebook

我正致力于编写一个小型Facebook应用程序,仅用于娱乐和学习。不幸的是,Facebook开发者文档,维基和样本还有很多不足之处。

如果我的应用程序是iFrame应用程序(PHP),我可以在页面中使用FBML还是需要使用XFBML?如果我需要使用XFBML,是否有一个我可以查看的片段存储库?

我想添加一个朋友选择器框。例如,欢迎使用该应用,选择一个对象,将其发送给20位朋友。

您会认为朋友选择器会成为Facebook应用的股票组件,但显然不是。

我可以使用FBQL和CSS来定义我自己的,但标准和一致性不是很好吗?

是否有一个明确的,从头开始,易于遵循Facebook应用程序开发人员教程,涵盖了FBML标签,XFBML标签以及带示例的地方?

1 个答案:

答案 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说明进行操作。