小编典典

基于Ajax的网站上的OpenGraph

ajax

我有一个网站,该网站完全基于Ajax(哈希导航)。

有没有一种方法可以使用Javascript刷新基于ajax的网站的Open Graph元标记?(当我单击一个链接时,标记和其中的值应更改)


阅读 180

收藏
2020-07-26

共1个答案

小编典典

否。OpenGraph标记必须出现在带有纯HTTP的GETable的HTML页面上。

这是因为当用户与OG对象进行交互(例如执行操作等)时,Facebook将在OG URL上执行HTTP GET,并期望看到标记中返回的OG标签。

解决方案是为每个对象创建规范的URL。这些URL包含基本的HTML标记,包括OG标签。

在对这些URL的请求中,如果看到包含“
facebookexternalhit”的传入用户代理字符串,则呈现HTML。如果您不这样做,则可以使用302重定向到您的ajax URL。在ajax
URL上,您的“喜欢”按钮和您发布的所有OG操作均应指向规范的URL对象

例:

作为用户,我在http://yoursite.com/#!/artists/monet上。我单击了“喜欢”按钮,或发布了一个动作,但是“喜欢”按钮的href参数或发布动作时对象的URL应该是对象的网络可点击规范网址-
在这种情况下,也许是http:// yoursite .com / artists /
monet

当使用浏览器的用户点击http://yoursite.com/artists/monet时,您应该将其重定向到http://yoursite.com/#!/artists/monet,但是如果传入的用户代理说这是Facebook的刮板,您只需返回代表艺术家莫奈的标记。

有关真实示例,请参阅均使用此设计模式的Deezer,Rdio和Mog。

2020-07-26