28

如何调试facebook调试器

问题的详细描述:

我使用“帖子和页面中的开放图形协议”插件为我自托管的 wordpress 网站上的帖子手动输入 OG 数据。在 Facebook 上分享它们之前,我在 FB 调试器工具中测试了帖子的 url,结果总是正确的。

但是,最近调试器返回了此错误消息:“错误检查 URL:检查 URL 时发生内部错误”,我好几天都无法摆脱它。我又试了几次调试,还是没用。它卡住了。我搜索了一个解决方案,但我找不到任何解决方案。我可能错了,但这个错误消息似乎很少见。

我不是专家,但我认为调试器工具不知何故被我帖子中的双 OG 数据弄糊涂了:

  1. 我手动插入插件“在帖子和页面中打开图形协议”的 OG 信息。
  2. 将视频插入帖子时,JWPLayer wordpress 插件自动生成的 OG 信息。

我只需要第一个,我通常删除 JWPlayer 的自定义字段,但这次我忘了这样做。

调试器返回错误消息后,我删除了 JWP 自定义字段,希望它们引起一些冲突,我保存了帖子并再次尝试调试。调试器再次返回错误消息。

Graph API 会看到关于我的帖子的过时信息,它不会刷新它,尽管我更正了帖子中的所有内容,之后我又调试了几次。在我看来,调试器在我的 url 中看到了一个错误并且不会忘记它。

我什至删除了帖子,将其内容复制并粘贴到了新帖子中,并给了它相同的标题(失去了那些可能会关注简短固定链接的访问者,但无论如何)。调试器对重新发布的帖子的反应方式相同。再次出现错误信息。我在调试器中测试了我的其他帖子,一切都很完美。很明显,调试器记住了这个特定的 url。如果我在 url 中以不同的标题重新发布帖子,问题就会消失。

我将那个有问题的网址分享给了 Facebook,奇怪的是它显示了正确的数据。一切似乎都正常:标题、描述、缩略图等……但是,我测试了帖子中的分享按钮,它在 Facebook 上显示了错误的数据,尽管我已经更正了。调试器会看到不再出现在帖子中的数据。出于这个原因,我被迫删除了分享按钮,这样访问者就不会在 Facebook 上分享错误的信息。

现在我处于一个矛盾的境地,试图找到一种方法来调试调试器。如何刷新它的内存以便它可以忘记我的 url 并且我可以从零开始重新开始?

如你所见,我不是这些问题的专家。我花了很多时间和资源来构建我的网站,而以前没有任何 php 和 css 知识,现在由于这些 facebook 错误,一切都陷入了困境。我正在浪费宝贵的时间来处理这种无稽之谈。为什么一切都必须如此复杂?我要求所有的开发人员,请制定一个好的、简单的、用户友好的和工作的标准并坚持下去。请停止复杂化。现在这个错误信息是什么?调试器绝对不提供任何解释和解决方案。它没有解决问题,而是陷入困境并成为问题本身。唯一能做的就是等待,希望错误会自行消失。这纯粹是胡说八道。

额外细节:

这就是 Graph API 在我的网址中看到的内容。尽管该数据不再有效,但调试器仍会记住它。可以看到JWPLayer插件自动插入的视频OG:

{
   "url": "http://mydomain/post-title/",
   "type": "video.movie",
   "title": "",
   "image": [
      {
         "url": "http://mydomain/uploads-folder/post-title-video-thumbnail.jpg"
      },
      {
         "url": "http://mydomain/uploads-folder/post-thumbnail.jpg"
      }
   ],
   "video": [
      {
         "url": "http://mydomain/uploads-folder/jw-player-plugin-for-wordpress/player/player.swf?file=http\u00253A\u00252F\u00252Fmydomain\u00252Ffiles\u00252Fvideo-title.flv&controlbar=bottom&dock=false&autostart=false&height=331&width=545&captions.back=false&captions.fontsize=12&captions.state=true&icons=true&playlist.position=none&playlistsize=180&repeat=none&shuffle=false&bufferlength=1&smoothing=true&stretching=uniform&wmode=opaque&mute=false&volume=90&plugins=captions-1\u00252Cgapro-2\u00252C&gapro.accountid=UA-76476476476-1&gapro.trackstarts=true&gapro.trackpercentage=true&gapro.tracktime=true",
         "type": "application/x-shockwave-flash",
         "width": 545,
         "height": 331
      }
   ],
   "description": "",
   "site_name": "here's the name",
   "updated_time": "2012-12-05T20:09:40+0000",
   "id": "754654658476545"

这是调试器在更正后现在应该看到的,但它没有这样做。但是,当 url 粘贴到 Facebook 时,它会正确显示:

{
   "url": "http://mydomain/post-title/",
   "type": "website",
   "title": "here's the title",
   "image": [
      {
         "url": "http://mydomain/uploads-folder/post-thumbnail.jpg"
      }
   ],
   "description": "This is a story about...",
   "site_name": "my site",
   "updated_time": "2012-12-05T20:11:56+0000",
   "id": "754654658476545"
}

通过按钮共享时,它会显示以前的错误数据。

4

1 回答 1

1

强制 Facebook 爬虫重新获取您的数据:

https://developers.facebook.com/docs/sharing/opengraph/using-objects#update

Facebook 爬虫将重新抓取(并因此更新)对象:

在对象调试器中输入对象 URL 时 第一次抓取后每 30 天应用程序使用 API 端点触发抓取时 此 Graph API 端点只是对以下内容的调用:

POST /?id={object-instance-id or object-url}&scrape=true

id 参数可以是对象的规范 URL,也可以是图中对象实例的 ID。

于 2016-02-29T10:29:19.773 回答