Facebook URL Linter为错误页面提取数据

Facebook URL Linter为错误页面提取数据,facebook,facebook-like,facebook-graph-api,Facebook,Facebook Like,Facebook Graph Api,我的团队最近发布了一个Web应用程序,大量使用Facebook的Like按钮。它们中的大多数工作正常,但Facebook或其URL Linter无法正确识别其中几个类似的URL。这些URL用于我们应用程序上的页面,该页面重定向到Facebook应用程序中的相应页面 示例URL: Facebook的URL Linter返回数据,就好像“id”参数不存在一样: 其他打开的图形解析器返回正确的数据: og:它: OpenGraph.In: 我花了几个小时寻找解释… ,在编辑元标记下,说明: “请

我的团队最近发布了一个Web应用程序,大量使用Facebook的Like按钮。它们中的大多数工作正常,但Facebook或其URL Linter无法正确识别其中几个类似的URL。这些URL用于我们应用程序上的页面,该页面重定向到Facebook应用程序中的相应页面

示例URL:

Facebook的URL Linter返回数据,就好像“id”参数不存在一样:

其他打开的图形解析器返回正确的数据:
og:它:
OpenGraph.In:

我花了几个小时寻找解释…

  • ,在编辑元标记下,说明:
    • “请注意,og:title和og:type仅在最初可编辑-在您的页面收到50个喜欢后,标题将变为固定,在您的页面收到10000个喜欢后,类型将变为固定。”我的喜欢计数与这些数字相差甚远。
    • “若要在Facebook上反映更改,您必须强制刮除页面。当页面管理员单击“喜欢”按钮或将URL输入Facebook URL过梁时,页面将被刮除。您可以通过卷起过梁以编程方式强制刮除页面。”这三种方法我都试过了,但都没有成功。
  • 表明linting一个URL并不像Facebook声称的那样重置缓存
  • 表明这可能是Facebook缓存,在未知时间段后将自行修复
  • 建议等待24-32小时,Facebook的缓存将被重置自从上次设置“打开图形”标记以来,已经64个多小时了。
  • 建议在发布之前向Facebook提供的任何URL(例如,通过Like按钮)都应该更改我尝试更改URL,重命名id参数,但没有成功。

  • 最有可能的罪魁祸首似乎是Facebook缓存,但它已经被怀疑很长时间了,因为这个网站是一个当前活动的一部分,强调类似的活动,我希望有人知道一个诀窍,让这个尽快工作。谢谢

    该Facebook页面上的iframe源位于以下url:

    couplespeak-3m-production.heroku.com/videos

    该页面包含Facebook Linter中显示的标签

    <meta content='3M Couple Speak Video Contest' property='og:site_name' /> 
    <meta content="3M Couple Speak Video Contest" property="og:title" /> 
    <meta content="website" property="og:type" /> 
    <meta content="http://apps.facebook.com/couplespeak?v=videos" property="og:url" /> 
    <meta content="http://www.3mframeworks.com/images/video_background.jpg" property="og:image" /> 
    <meta content="100001154487117" property="fb:admins" /> 
    

    Facebook的Graph API和URL Linter中的某些部分删除了除第一个URL参数之外的所有URL参数

    图形API

  • 当参数字符串为“?v=videos&id=17”时,“id”丢失:

  • 当参数字符串为“?id=17&v=videos”时,“v”丢失:
  • 如果显式声明了图形“id”参数,则不会发生这种情况:
  • 不幸的是,第三点对我的情况没有帮助:我没有直接访问图形,所以我不能直接插入“?id=”

    URL Linter

    对于我的应用程序,需要所有参数来呈现正确的Open Graph元标记,结果支持我的发现:

  • 当嵌套的编码参数字符串为“?v=videos&id=17”时,将为“3M情侣对话视频比赛”呈现开放图形标记。这是缺少“id”参数时的预期行为:
  • 当嵌套的编码参数字符串为“?id=17&v=videos”时,将为“3M情侣对话翻译大赛”呈现开放图形标记。这是缺少“v=视频”时的预期行为:
  • 这不会发生在非嵌套、非编码的参数字符串中:
  • 对于其他开放图解析器,切换嵌套编码参数的顺序会产生相同的数据,这是正确的:
  • 不幸的是,第三点对我的情况没有帮助:我们需要嵌套和编码URL


    这解释了我看到的坏数据,以及为什么它只发生在具有多个参数的URL上。我向Facebook提交了一个应用程序。

    打开的图形数据来自重定向页面,而不是Facebook应用程序iframe。在不知道的情况下,这更难诊断,所以我很抱歉没有说得更清楚。无论如何,问题似乎存在于Facebook对编码URL参数的处理中(请参阅我的答案),因此除了提交错误报告之外,我无能为力。谢谢调查!知道了。我误解了这个问题。我是Facebook开发者关系团队的成员,我会把你的调查转交给他们,看看linter的行为是否是故意的。谢谢你调查此事。