0

我正在用 PHP 开发 Facebook 应用程序。它作为 iframe 而不是 FBML 加载。与 Facebook 的正常交互是有效的。例如下面的代码给出了用户名:

$facebook = new Facebook($config->appapikey, $config->appsecret);
$user_id = $facebook->require_login($required_permissions = 'email');
echo $user->name;

$user 是我的类,其中用户详细信息是从 facebook 加载的。我的文档以下列方式开始:

<!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" xmlns:fb="http://www.facebook.com/2008/fbml">
<head><title>Appname</title>
</head>
<body>
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/de_DE" type="text/javascript"></script>

结局是这样的:

<script type="text/javascript">  
FB_RequireFeatures(['XFBML','CanvasUtil'], function(){ 
FB.init("<?php echo $config->appapikey; ?>", "/app/xd_receiver.htm");
FB.CanvasClient.startTimerToSizeToContent(); 
 });
  </script>
</body>
</html>

正如我在 Firebug 中看到的那样,还加载了 xd_receiver.htm 文件。

但我的问题是,例如请求表单没有加载。我的代码:

<fb:serverFbml>
    <script type="text/fbml"> 
        <fb:fbml>
            <fb:request-form method="post" action="<?php echo $config->site; ?>index.php" type="appname" invite="true" target="_top" content="content">
                <fb:multi-friend-selector actiontext="text" rows="3" showborder="true" target="_top"/>
            </fb:request-form>
        </fb:fbml>
    </script>
</fb:serverFbml>

我可以用 Firebug 看到代码,但 Facebook 没有显示表单。

2 或 3 周前它已显示,但此时我有标签

    </fb:fbml>
</script>
</fb:serverFbml>

在正文中环绕我的完整文本。2 周前,我遇到的问题是不再显示任何内容。删除标签后,我的应用程序会显示,但不会显示表单。

我现在在网上搜索 1 周,并在 Facebook 上阅读了许多关于 FBML 和 XFBML 的主题,但对我没有任何帮助。

所以提前谢谢你的帮助。

4

1 回答 1

0

哇,我不知道该说什么。我刚刚查看了您的所有代码,一切看起来都已到位。也许尝试添加这个

FB.XFBML.Host.autoParseDomTree = true;

就在打电话给FB.init()

于 2010-04-15T13:28:28.183 回答