Dan*_*Dan 39 facebook opengraph
我正在尝试在我的产品页面上实现Facebook的OpenGRaph协议.
在每个页面上,我在头部上方有这个:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">
Run Code Online (Sandbox Code Playgroud)
然后在头部区域我有:
<meta property="og:title" content="This Page Title"/>
<meta property="og:type" content="product"/>
<meta property="og:url" content="http://www.mywebaddress.com"/>
<meta property="og:image" content="http://www.myimage.jpg"/>
<meta property="og:site_name" content="My Site Name"/>
<meta property="fb:admins" content="10101010101"/>
<meta property="og:email" content="hello@mywebaddress.com"/>
<meta property="og:description" content="Description of my product."/>
Run Code Online (Sandbox Code Playgroud)
然后,我有一个带有此代码的"喜欢"按钮:
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-like" data-href="http://thispagesurl" data-send="true" data-width="350" data-show-faces="false"></div>
Run Code Online (Sandbox Code Playgroud)
在我看来,一切似乎都复制了可以在Facebook开发者页面上找到的东西,但是当我喜欢'时,Facebook似乎只是在页面标题和一般信息上.
我试图使用他们的对象调试器"调试"页面,我得到这些警告:
Inferred Property The og:url property should be explicitly provided, even if a value can be inferred from other tags.
Inferred Property The og:title property should be explicitly provided, even if a value can be inferred from other tags.
Inferred Property The og:image property should be explicitly provided, even if a value can be inferred from other tags.
Inferred Property The og:locale property should be explicitly provided, even if a value can be inferred from other tags.
Run Code Online (Sandbox Code Playgroud)
据我所知,我已按照Facebook的指示写信,但我没有喜悦.任何人都可以指出我做错了什么吗?
提前谢谢,丹
Igy*_*Igy 51
这些标签是否在"http://www.mywebaddress.com"上?
请记住,linter将遵循og:url标记,因为此标记应指向内容的规范URL - 因此,如果您有一个页面,例如带有og:url标记指向的"http://mywebaddress.com/article1" 到'http://mywebaddress.com',Facebook也会去那里阅读标签.
如果做不到这一点,我看到没有被linter检测到的看似正确的标签的最常见原因是用户代理检测返回与Facebook手动检查时看到的内容不同的内容到Facebook的抓取工具
小智 24
最后一组引号后需要一个空格
<meta property="og:url" content="http://www.mywebaddress.com"/>
Run Code Online (Sandbox Code Playgroud)
应该......好像这一个
<meta property="og:url" content="http://www.mywebaddress.com" />
Run Code Online (Sandbox Code Playgroud)
Ole*_*err 12
大量的Facebook工具和文档存在一些混乱.很多人可能会使用Sharing Debugger工具来检查他们的OpenGraph标记:https: //developers.facebook.com/tools/debug/sharing/
但它只从Facebook缓存中检索有关您网站的信息.这意味着在您更改站点上的ogp-markup后,共享调试器仍将使用旧的缓存数据.此外,如果Facebook服务器上没有缓存数据,则共享调试器将显示错误:This URL hasn't been shared on Facebook before.
因此,解决方案是使用另一个工具 - Open Graph Object Debugger:https: //developers.facebook.com/tools/debug/og/object/
它允许您获取新的scrape信息并刷新Facebook缓存:
老实说,我不知道如何找到这个工具探索developers.facebook.com的工具和支持部分- 我找不到任何链接和提及.我的书签中只有这个工具.这是Facebook :)
我还注意到一些开发人员使用该name属性而不是property.许多解析器可能会正确处理这些标记,但根据Open Graph协议,我们应该使用property,而不是name:
<meta property="og:url" content="http://www.mywebaddress.com"/>
Run Code Online (Sandbox Code Playgroud)
最后一条建议是指定完整的URL.例如,Facebook在您使用相对URL时会抱怨og:image.所以使用完整的:
<meta property="og:image" content="http://www.mywebaddress.com/myimage.jpg"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
125516 次 |
| 最近记录: |