所以我目前正在构建一个单页应用程序,因此需要在加载所有数据后更新元数据。 (该应用程序是严格的JavaScript和HTML,很少甚至没有后端尝试轻量级...整个应用程序是〜50kb)
不幸的是,在调查这个问题之后,让我意识到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?
答案 0 :(得分:1)
据我所知,Facebook刮刀只读取标题中设置的数据和OG标签。请参阅:http://davidwalsh.name/facebook-meta-tags
因此,通过在您的应用中正确设置它们,Facebook应该选择数据。请记住,Facebook刮刀有一个缓存系统,可以使用Facebook URL linter(手动)清除。
此工具也可用于调试。见https://developers.facebook.com/tools/debug
当页面加载时,数据需要存在'静态'(或由服务器端语言放置),因为Facebook刮刀不会解析Javascript。