1

在视图 ctp 中的 cake php 1.3 中,我有以下代码:

$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
   }
}

有人知道如何解决吗?

4

2 回答 2

6

如果您的页面仅限于登录用户或具有某种会话逻辑,则可能会出现此问题。

您可以从此链接使用调试工具:

http://developers.facebook.com/tools/debug

在该链接中,您可以在字段中提供您的网址(http://example.com/exmp/explus/books/view/234) 。"Input URL, Access Token, or Open Graph Action ID"

之后单击调试按钮,如果您能够看到 的值fb:app_id,og:url,og:type,og:title,则不会发生此问题。

否则,您可以查看"URLs"页面底部的部分并单击"See exactly what our scraper sees for your URL"链接。单击链接后,您可以在浏览器中看到您网站的 html 代码。这将帮助您调试问题。

于 2012-04-16T05:25:30.067 回答
0

BP RAM是对的,如果你按照他的步骤你应该能够找到问题所在。(如果可以的话,我会投票;没有足够的声誉。)

我想分享我的经验来详细说明。我最近遇到了同样的问题。Facebook 继续忽略所有元标记,我得到相同的 #3502 错误。

我终于使用 Facebook Debug Tool > "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,输入您的 URL 并按页面底部的“Scraped URL”。)

检查<head></head>部分是否混入了垃圾代码。如果有,Facebook 将无法解析元标记。

于 2012-09-17T06:32:09.127 回答