因此,我目前正在构建一个单一页面的应用程序,因此需要在所有数据加载后更新元数据。 (该应用程序是严格的JavaScript和HTML,有很少到没有后端尝试轻量级...整个应用程序是〜50kb)改变Facebook GraphAPI页面抓取数据
不幸的是,在调查这个问题后,我认识到Facebook将永远不会因为js不会运行,因此在屏幕抓取过程中查看更新后的元。
但是我没有意识到,当你的请求后,以https://graph.facebook.com/id=http://sitename其与此格式的对象响应:
{
"url": "http://site/",
"type": "website",
"title": "site name",
"image": [
{
"url": "http://site/thumb.jpg"
}
],
"description": "site description",
"updated_time": "2014-10-18T20:10:29+0000",
"id": #
}
我的问题是,是否有可能更新此对象,并发送回Facebook的你希望他们使用的值?
在DOM被加载后元获得更新,我相信刮只读取静态html,所以它从来没有看到我的任何数据。这意味着使用调试器刷新数据不会有什么好处 – 2014-10-18 21:01:39
我不认为这是可能的。 Facebook的刮板确实读取每个网址的静态数据(或动态放置)并且不会调用Javascript。你能告诉我们更多关于你为什么需要把它放在那里的JavaScript? – 2014-10-18 21:05:25
因为我的应用程序总共只有3页,不包括js和样式表。 (404,主页和数据页面)。我在URL中使用散列来确定加载的正确的JSON(http:// site/data /#id)。因为所有这些逻辑都是通过js完成客户端的,这意味着元数据在DOM加载之后才能被更新,然后刮板已经被刮掉了 – 2014-10-18 21:16:45