首页 文章

为非opengraph支持的og:type对象实现自定义命名空间

提问于
浏览
2

我已经成功地在我的页面添加了一个类似Facebook的按钮,使用opengraph标签将其定义为图形中的一个对象,因此它被视为一个对象,而不是一个链接 .

我使用的是ogtype = product元标记,但Facebook解析器会产生错误(见下文),这似乎与Facebook不再支持“产品”类型的事实有关 .

喜欢对象时,它显示为“产品/服务” . 这似乎很好,但是由于解析器错误,需要了解更多,我想解决它,并采取给出的建议来实现我自己的自定义类型,我可能会在以后充分使用 .

我的页面是现有产品的评论页面(单个对象产品,同一页面上的多个评论),因此我需要定义一个自定义命名空间才能执行此操作 . 但是,我不确定我做得对...

我总体上有点困惑,因为我似乎必须有一个应用程序才能这样做并定义一个自定义对象和动作(即使我没有立即计划利用一个动作) .

所以我在Facebook的“App”中设置了一个命名空间(mySiteName),我已经定义了一个对象“ski”和动作“review”(稍后) .

然后是我的自定义名称空间声明:

http://ogp.me/ns#mySiteName:http://ogp.me/ns/apps/mySiteName#“>

这最初通过了调试测试,但后来我注意到我有一个无关的标签,我删除了,我得到了一堆新的错误:

初始调试错误:

此元数据的解析器结果与输入元数据不匹配 . 可能,这是由于数据以意外方式排序,为属性提供的多个值仅期望单个值,或者给定属性的属性值不匹配 . 以下是在解析结果中未显示的输入属性=>内容对:'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命名空间:

无关属性:此类对象不允许名为'og:mysitename:type'的属性 . 无关属性:此类对象不允许名为“og:mysitename:title”的属性 . 等元标签:元标签:等

感谢您提供任何意见 - 我一直在努力工作几个小时没有快乐 .

1 回答

  • 2

    解析器与当前的Open Graph API相反,但'og:type = product'来自于2010年使用Like按钮启动的标记的早期版本 - 文档目前在此处:https://developers.facebook.com/docs/opengraphprotocol/

    它应该仍然可以工作,但Facebook's Debug Tool赢了't pass it, as it'寻找与自动操作相关联的标签和与当前版本的Open Graph一起使用的对象标记

    对于自定义对象, Headers 等应添加 og:title ,而不是 og:namespace:title 标签,也许's the issue with your ' ski ' object? In the Open Graph settings for your app, the object definition has a '获取代码'旁边的按钮,其中包含该对象的示例标记:
    enter image description here

    • 看看它与您正在做什么相比

相关问题