我已经成功地将Facebook按钮添加到我的页面,使用opengraph标记将它定义为图中的对象,因此它被作为对象而非一条链接。为非opengraph支持的og实现自定义名称空间:输入对象
我正在使用一个ogtype =产品元标记,但Facebook解析器产生一个错误(见下文),似乎对Facebook事实上不再支持“产品”类型感到高兴。
喜欢该对象时,它显示为“产品/服务”。这看起来不错,但是由于解析器错误,以及需要更多的理解,我想解决它,并采取给予的建议来实现我自己的自定义类型,我可能会在以后使用它。
我的页面是现有产品(单个对象产品,同一页面上的多个评论)的评论页面,所以我需要定义一个自定义名称空间以便能够执行此操作。然而,我不知道我做得对...
我有点困惑,因为它似乎我必须有一个应用程序才能做到这一点,并定义一个自定义对象和动作(即使我没有立即计划采取行动)。
因此,我在Facebook的“App”中设置了一个名称空间(mySiteName),并且我定义了一个对象“ski”和“review”(稍后)。
然后是我的自定义命名空间声明:
http://ogp.me/ns#mySiteName: http://ogp.me/ns/apps/mySiteName#“>
这最初通过调试试验,但后来我发现我有一个多余的标签,该标签我删除,我得到了新的错误的负载:
初始调试错误:
The parser's result for this metadata did not match the input metadata. Likely, this was caused by the data being ordered in an unexpected way, multiple values being given for a property only expecting a single value, or property values for a given property being mismatched. Here are the input property =>content pairs that were not seen in the parsed result: 'og:type => product'
代码(没有错误):
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{lang}" lang="{lang}" xmlns:fb="http://ogp.me/ns/fb#">
<head>
<head prefix="og: http://ogp.me/ns#mysitename: http://ogp.me/ns/apps/mysitename#">
<meta property="og:type" content="mysitename:ski" />
新调试错误,除去多余的,其中只有mysitename命名空间似乎是用来:
Extraneous Property: Objects of this type do not allow properties named 'og:mysitename:type'. Extraneous Property: Objects of this type do not allow properties named 'og:mysitename:title'.
etc
Meta Tag: Meta Tag:
etc
感谢任何投入 - 我一直没有快乐的事情了几个小时。
感谢@Igy。我从各地得到了这样的印象。当文档赶上更新的API和调试器,因为 - 任何想法为什么我的自定义对象名称空间“滑雪”不起作用? – Dan
以上编辑答案 – Igy
再次感谢@Igy - 最初我有'og:title',但由于某种原因,我的duff命名空间声明意味着它们在调试器中被读为'og:namespace:title',即使我的命名空间只在og:类型元。我通过你的指针使用了示例代码,它可以工作。我错过了一个空间 - 不知道这是否是终端。 – Dan