首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于HTML5的开放式图形验证

用于HTML5的开放式图形验证
EN

Stack Overflow用户
提问于 2011-06-28 11:18:11
回答 9查看 34.1K关注 0票数 58

有没有办法让facebook糟糕的Open Graph元标签来验证我的文档类型是不是<!DOCTYPE html> (HTML5)?

除了facebook的Open Graph meta标签之外,我的文档可以完美地验证。

我真的不想使用<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">,因为它会产生一系列新的问题。

以下是一个有问题的验证错误的示例...

错误行11,列47:此时不允许对元素meta使用属性属性。

代码语言:javascript
复制
<meta property="og:type" content="website" />

任何帮助都将不胜感激。我断断续续地找了好几天,都没有结果。

EN

回答 9

Stack Overflow用户

发布于 2011-11-16 22:23:44

只有当facebook扫描页面中的这些标签时,才需要这些元标签。

代码语言:javascript
复制
    <? 
    if(eregi("facebookexternalhit", $_SERVER['HTTP_USER_AGENT'])){

      echo '<meta property="og:type" content=xxxxxxxxxxxxx';
      // continue with the other open graph tags
    }
   ?>

上述标签只有在facebook需要它们的时候才会出现-- PHP的这种方法将它们完全移除,用于所有其他实例,包括W3C验证。

票数 5
EN

Stack Overflow用户

发布于 2013-08-09 01:40:16

这里的许多答案已经过时了。请不要窥探标头或通过JavaScript写入(因为处理器可能不会计算JS)。

称为RDFa 1.1和RDFa Lite1.1(请参阅http://www.w3.org/TR/rdfa-lite/http://www.w3.org/TR/rdfa-primer/ )的W3C推荐标准(对HTML5的扩展)使"property“属性有效且一致。同时(因为这里是较老的答案),验证器http://validator.w3.org/check将该属性识别为有效。此外,开放图形协议文档http://ogp.me/已经更新,以反映RDFa 1.1 (它使用“前缀”属性)。

W3C的工作已经完成,其中包括来自OpenGraph和schema.org的输入,以解决此问题所引发的问题。

简而言之,确保你的OG标签符合RDFa,你就是黄金用户。

票数 5
EN

Stack Overflow用户

发布于 2012-02-11 15:09:47

一年多过去了,我们得到的最佳解决方案是将元标记封装在某种类型的服务器端验证中。

在PHP中,我做到了:

代码语言:javascript
复制
<?php if (stristr($_SERVER["HTTP_USER_AGENT"],'facebook') !== false) { ?>
  <meta property="og:title" content="Title of the page" />
  <meta property="og:url" content="http://www.example.com/" />
  <meta property="og:type" content="website" />
  <meta property="fb:admins" content="123456789" />
  <meta property="og:image" content="http://www.example.com/images/thumb.jpg" />
<?php } ?>

这对Facebook来说真的很有效。但是我真的不喜欢这个主意!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6501189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档