在蛋糕php 1.3中查看ctp我有以下代码:
$url = 'http://example.com/exmp/explus/books/view/'.$book['Book']['id'];
echo $this->Html->meta(array('property' => 'fb:app_id', 'content' => '*******'),'',array('inline'=>false));
echo $this->Html->meta(array('property' => 'og:type', 'content' => 'book'),'',array('inline'=>false));
echo $this->Html->meta(array('property' => 'og:url', 'content' => $url ),'',array('inline'=>false));
echo $this->Html->meta(array('property' => 'og:title', 'content' => $book['Book']['title']),'',array('inline'=>false));
echo $this->Html->meta(array('property' => 'og:description', 'content' => $book['Book']['title']),'',array('inline'=>false));
$imgurl = '../image/'.$book['Book']['id'];
echo $this->Html->meta(array('property' => 'og:image', 'content' => $imgurl ),'',array('inline'=>false)); ?>
当我发布它时,它会出现以下错误
{
"error": {
"message": "(#3502) Object at URL http://example.com/exmp/explus/books/view/234' has og:type of 'website'. The property 'book' requires an object of og:type 'book'. ",
"type": "OAuthException",
"code": 3502
}
}
是否有人知道如何解决它?
答案 0 :(得分:6)
如果您的页面受限于登录用户或具有某种会话逻辑,则可能会发生此问题。
您可以使用此链接中的调试工具:
http://developers.facebook.com/tools/debug
在该链接中,您可以在"Input URL, Access Token, or Open Graph Action ID"
字段中提供您的网址(http://example.com/exmp/explus/books/view/234)。
如果能够看到fb:app_id,og:url,og:type,og:title
的值,则在单击调试按钮之后,不会发生此问题。
否则,您可以查看页面底部的"URLs"
部分,然后点击"See exactly what our scraper sees for your URL"
链接。点击该链接即可在浏览器中看到您网站的HTML代码。这将有助于您调试问题。
答案 1 :(得分:0)
BP RAM是正确的,如果您按照他的步骤操作,您应该能够找到问题所在。 (如果可以,我会赞成;没有足够的声誉。)
我想分享一下我的经验。我最近遇到了同样的问题。 Facebook一直忽略所有元标记,我得到了相同的#3502错误。
我终于使用了Facebook调试工具> “Scraped URL”来检查我的代码。 此工具可以准确显示Facebook抓取工具所看到的内容。
我注意到我的HTML代码中混有php错误。这些错误从未出现在IE,FF或Chrome的源代码中。就我而言,它与我的浏览器检测代码有关。 Facebook的抓取工具的user_agent不在我的列表中,导致我的检测代码生成错误消息,从而破坏了HTML标记。我修复了我的功能,一切都恢复了!
我建议您查看您的网站: http://developers.facebook.com/tools/debug/og/echo?q=YOUR_WEBSITE_URL_HERE
(或使用https://developers.facebook.com/tools/debug,输入您的网址,然后按页面底部的“Scraped URL”。)
检查< head>< / head>中是否混有垃圾代码部分。如果有,Facebook将无法解析元标记。