问题描述
我正在努力让 Facebook 的微数据标签调试器识别 JSON-LD 数据中定义的多个产品变体,并根据 schema.org 进行格式化。
问题已在 this question 中描述,但唯一的答案来自遇到相同问题的人,以及粘贴 Facebook 示例数据的人,其中仅包含 1 个变体。
从尝试实现由 Facebook 获取的微数据标签以允许更新目录,我发现一致的事情是 Google 实现会在页面中的任何位置找到微数据标签,以及任何他们使用的 schema.org 产品定义的变体,并且 Facebook 实施在所有情况下都失败了,只有非常狭窄的一组场景。
首先,虽然 Facebook 开发者帮助页面中没有提到,但它只会识别 JSON-LD 数据,如果它在 HEAD 标签内。 (它指出 OpenGraph 标签应该在 HEAD 中,但没有为 JSON-LD 说明这一点。)我还发现它似乎很少能找到价格数据,并且没有解释任何验证失败很好。
我尝试按如下方式格式化 JSON-LD 数据:
这些似乎都不起作用。
我已经设置了一些可以与 Facebook micro data tag debugger 一起使用的测试页:
- https://j0nkn1ght.github.io/fb-microdata1.html - 这包含来自 Facebook developer help page 的确切数据
- https://j0nkn1ght.github.io/fb-microdata2.html - 这包含 2 个产品,每个变体一个
- https://j0nkn1ght.github.io/fb-microdata3.html - 这包含 1 个产品,有 2 个 ProductModel,每个变体一个
如果您使用调试器处理这些 URL,第一个成功找到包含价格的产品,第二个找到第一个变体但忽略第二个,第三个找不到产品的价格。
使用 Google Rich Results Test 页面成功找到最后 2 个网址的两个变体。
有没有人成功地让 Facebook 在同一页面上识别出多个产品变体?
作为一个额外的问题,我发现的另一个奇怪的事情是,如果我从 ASP.Net MVC Core 应用程序生成 JSON 数据,并将其作为页面渲染的一部分注入到页面中,FB调试器总是找不到价格信息,而如果我将渲染的输出粘贴到视图中,FB 调试器会找到价格信息。我已经使用 Postman 来验证呈现的页面在两种情况下都相同,直到空白,所以我不知道如何解释这一点。有没有其他人经历过类似的事情?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)