我正在尝试创建一个测试应用程序,源代码如下(index.php):
<?php
include_once 'facebook/facebook.php';
$facebook = new Facebook(array(
'appId' => 'YYYYYYYYYYYYYYYY',
'secret' => 'XXXXXXXXXXXXXXXXXXXXXX',
));
$user = $facebook->getUser();
if($user)
{
try
{
$user_profile = $facebook->api('/me');
}
catch(FacebookApiException $e)
{
error_log($e);
$user = null;
}
}
if( ! $user)
{
echo "<script type=\"text/javascript\">top.location.href='" . $facebook->getLoginUrl(array(
'scope' => 'publish_actions,publish_stream',
'redirect_uri' => 'http://apps.facebook.com/MYAPPURL/'
)) . "'</script>";
exit;
}
?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>TribusWar</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script src="http://connect.facebook.net/en_US/all.js#appId=YYYYYYYYYYYYYYYY&xfbml=1"></script>
</head>
<body>
<input type="button" value="Compartilhar" id="xxxxx" />
</body>
<script type="text/javascript">
document.getElementById('xxxxx').addEventListener('click', function()
{
FB.ui({
method: 'feed',
display: 'iframe',
name: 'Dialog Name',
caption: 'Caption for dialog',
description: 'Lorem ipsum dolor sit amet...'
}, function()
{
alert(arguments);
});
}, false);
</script>
</html>有了这段代码,我想在页面上显示一个按钮,当单击该按钮时会触发一个发布对话框。当页面加载时,它会生成一个错误,当单击按钮时,会发生另一个错误,并且对话框不会显示:

我不知道这出了什么问题。我不知道publish_stream权限是否真的有必要,因为我正在尝试使用facebook对话框。有人能帮我吗-我?
发布于 2011-09-07 11:57:35
正如Nava Salvatore (和调试器控制台)所说,您需要添加:
<div id="fb-root"></div>在您的代码的<body>中的某个位置。此外,最后的<script>块应该在</body>标记之前(根据约定)。简单地显示对话框不需要任何额外的权限;不需要publish_stream。
发布于 2011-09-07 11:48:24
尝试添加
<div id="fb-root"></div>在<script之前
https://stackoverflow.com/questions/7328042
复制相似问题