Javascript 修改Facebook GraphAPI页面抓取数据

Javascript 修改Facebook GraphAPI页面抓取数据,javascript,facebook,facebook-graph-api,Javascript,Facebook,Facebook Graph Api,因此,我目前正在构建一个单页应用程序,因此需要在加载所有数据后更新元数据。(该应用程序严格使用javascript和html,几乎没有后端试图实现轻量级…整个应用程序约50kb) 不幸的是,在研究了这个问题后,我意识到facebook永远不会在屏幕抓取过程中看到更新的元数据,因为js不会运行 但是,我确实意识到,当您向其发送请求帖子时,它会以以下格式响应对象: { "url": "http://site/", "type": "website", "title": "site

因此,我目前正在构建一个单页应用程序,因此需要在加载所有数据后更新元数据。(该应用程序严格使用javascript和html,几乎没有后端试图实现轻量级…整个应用程序约50kb)

不幸的是,在研究了这个问题后,我意识到facebook永远不会在屏幕抓取过程中看到更新的元数据,因为js不会运行

但是,我确实意识到,当您向其发送请求帖子时,它会以以下格式响应对象:

{
   "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,其中包含您希望他们使用的值?

据我所知,facebook刮板只读取标题中设置的数据和OG标记。见:

因此,通过在你的应用程序中正确设置它们,Facebook应该能够获取数据。请记住,Facebook scraper有一个缓存系统,可以使用Facebook URL linter(手动)清除该系统

此工具对于调试也很有用。看


加载页面时,数据需要“静态”(或通过服务器端语言放在那里),因为Facebook scraper不会解析Javascript。

加载DOM后,元数据会更新,我相信scrape只读取静态html,因此它不会看到我的任何数据。这意味着使用调试器刷新数据不会有任何好处,我认为这是不可能的。Facebook scraper实际上读取每个url的静态数据(或动态放置),而不调用Javascript。你能告诉我们为什么你需要用javascript把它放到那里吗?因为我的应用程序总共只有3页,不包括js和样式表。(404,主页和数据页)。我正在使用url中的哈希来标识要加载的正确json()。因此,所有的逻辑都是通过js在客户端完成的,这意味着在加载DOM之前,meta无法更新,到那时,scraper已经理解了,但无法解决您的问题。加载页面时,数据需要处于“静态”状态。也许能想出一个解决办法把元数据放在那里?谢谢你!我能想到的唯一其他方法是使用服务器端语言,但我试图避免这种情况