我想了很久,调试工具和终端控制台都没有问题,但是在下面的代码中一直弹出“发生错误”:
<script type="text/javascript">
function postCook()
{
$pageURL = window.location;
FB.api('/me/bgfapp:watch?movie=' + $pageURL,'post',
function(response) {
if (!response || response.error) {
alert('Error Occurred');
} else {
alert('Post was successful! Action ID: ' + response.id);
}
});
}
</script>
我尝试回显 $pageURL 并成功返回当前 URL,所以我无法弄清楚上面的代码有什么问题
更新时间:2012 年 1 月 30 日
错误说:发生错误[object Object][object Object]
最佳答案
您可能已经找到了解决方案,但希望这会对其他人有所帮助。
这里的问题是您不知道响应对象中子节点的名称。如果您无法命名特定节点,那么您将不断收到该错误消息:“发生错误 [Object object] 消息”
我有一个简单的解决方法,可以让您在不知道响应对象的子节点名称的情况下看到错误消息。 JSON.stringify 会将整个对象简单地转换成一个字符串,让您可以查看其内容。它不会很漂亮,但您肯定能够在其中看到错误消息。
试试这个:
<script type="text/javascript">
function postCook()
{
$pageURL = window.location;
FB.api('/me/bgfapp:watch?movie=' + $pageURL,'post', function(response) {
if (!response || response.error) {
alert(JSON.stringify(response));
}
else {
alert('Post was successful! Action ID: ' + response.id);
}
});
}
另一种解决方案是将响应对象的内容输出到控制台而不是执行警报,只需将我的代码示例中的第 7 行替换为:
console.log(response);
从这里,您可以打开 Web 浏览器的开发控制台并遍历响应对象的内容。由于控制台并不总是可用(例如 phonegap 应用程序),因此前一种解决方案有时更合适。
关于Facebook Open Graph Action 编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9051689/