我正在用 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 的主题,但对我没有任何帮助。
所以提前谢谢你的帮助。