Facebook 目录 - 无法使用 JSON-LD

问题描述

我正在努力让 Facebook 的微数据标签调试器识别 JSON-LD 数据中定义的多个产品变体,并根据 schema.org 进行格式化。

问题已在 this question 中描述,但唯一的答案来自遇到相同问题的人,以及粘贴 Facebook 示例数据的人,其中仅包含 1 个变体。

从尝试实现由 Facebook 获取的微数据标签以允许更新目录,我发现一致的事情是 Google 实现会在页面中的任何位置找到微数据标签,以及任何他们使用的 schema.org 产品定义的变体,并且 Facebook 实施在所有情况下都失败了,只有非常狭窄的一组场景。

首先,虽然 Facebook 开发者帮助页面中没有提到,但它只会识别 JSON-LD 数据,如果它在 HEAD 标签内。 (它指出 OpenGraph 标签应该在 HEAD 中,但没有为 JSON-LD 说明这一点。)我还发现它似乎很少能找到价格数据,并且没有解释任何验证失败很好。

我尝试按如下方式格式化 JSON-LD 数据:

  • 每个变体包含一个 Product 对象
  • 包含一个包含多个 ProductModel 对象的 Product 对象,每个变体一个

这些似乎都不起作用。

我已经设置了一些可以与 Facebook micro data tag debugger 一起使用的测试页:

如果您使用调试器处理这些 URL,第一个成功找到包含价格的产品,第二个找到第一个变体但忽略第二个,第三个找不到产品的价格。

使用 Google Rich Results Test 页面成功找到最后 2 个网址的两个变体。

有没有人成功地让 Facebook 在同一页面上识别出多个产品变体?

作为一个额外的问题,我发现的另一个奇怪的事情是,如果我从 ASP.Net MVC Core 应用程序生成 JSON 数据,并将其作为页面渲染的一部分注入到页面中,FB调试器总是找不到价格信息,而如果我将渲染的输出粘贴到视图中,FB 调试器会找到价格信息。我已经使用 Postman 来验证呈现的页面在两种情况下都相同,直到空白,所以我不知道如何解释这一点。有没有其他人经历过类似的事情?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...