gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:27:26 25 4
gpt4 key购买 nike

我的团队最近推出了一款网络应用程序,该应用程序大量使用了 Facebook 的“赞”按钮。它们中的大多数工作正常,但 Facebook 或其 URL Linter 无法正确识别几个 Like URL。这些 URL 适用于我们应用程序中的一个页面,该页面重定向到 Facebook 应用程序中的相应页面...

示例网址:
http://www.3mframeworks.com/pages/redirect?url=http%3A%2F%2Fapps.facebook.com%2Fcouplespeak%3Fv%3Dvideos%26id%3D17

Facebook 的 URL Linter 返回数据,就好像“id”参数不存在一样:
https://developers.facebook.com/tools/lint?url=http%3A%2F%2Fwww.3mframeworks.com%2Fpages%2Fredirect%3Furl%3Dhttp%253A%252F%252Fapps.facebook.com%252Fcouplespeak%253Fv%253Dvideos%2526id%253D17

其他 Open Graph 解析器返回正确的数据:
奥格:它:http://ogit.heroku.com/inspect?url=www.3mframeworks.com%2Fpages%2Fredirect%3Furl%3Dhttp%253A%252F%252Fapps.facebook.com%252Fcouplespeak%253Fv%253Dvideos%2526id%253D34
OpenGraph.In:http://www.opengraph.in/?url=www.3mframeworks.com%2Fpages%2Fredirect%3Furl%3Dhttp%253A%252F%252Fapps.facebook.com%252Fcouplespeak%253Fv%253Dvideos%2526id%253D34&format=html

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

  1. > Facebook's documentation ,在编辑元标记下,指出:
    • “请注意,og:title 和 og:type 最初只能编辑 - 在您的页面收到 50 个赞后,标题会固定,而在您的页面收到 10,000 个赞后,类型会固定。” < strong>我的赞数远不及这些数字。
    • “要在 Facebook 上反射(reflect)更改,您必须强制抓取您的页面。当页面管理员单击“赞”按钮或将 URL 输入 Facebook URL Linter 时,页面将被抓取. 您可以通过 cURL 的 linter 以编程方式强制抓取您的页面。” 我已经尝试了所有这三种方法,但都没有成功。
  2. > Facebook Like button - fetches "wrong" image建议 linting URL 不会像 Facebook 声称的那样重置缓存。
  3. > Facebook Open Graph not clearing cache这表明这可能是 Facebook 的缓存,它将在一段未知的时间后自行修复。
  4. > facebook like button liking wrong url建议等待 24-32 小时以重置 Facebook 的缓存。 我的 Open Graph 标签上次设置已经超过 64 小时了。
  5. > Why is Facebook returning the wrong page (affects Facebook Like and Share URL)?建议更改在发布之前提供给 Facebook 的任何 URL(例如通过“赞”按钮)。 我尝试更改 URL,重命名 id 参数,但没有成功。

最有可能的罪魁祸首似乎是 Facebook 缓存,但它的时间已经很可疑了,而且由于该站点是当前正在进行的事件的一部分,该事件强调点赞事件,我希望有人知道一个技巧来尽快使它正常工作。谢谢!

最佳答案

Facebook 的 Graph API 和 URL Linter 中的某些部分删除了多个 URL 参数中的第一个参数。

图形 API

  1. 当参数字符串为“?v=videos&id=17”时,“id”丢失:
    https://graph.facebook.com/http%3A%2F%2Fapps.facebook.com%2Fcouplespeak%3Fv%3Dvideos%26id%3D17
  2. 当参数字符串为“?id=17&v=videos”时,“v”丢失:
    https://graph.facebook.com/http%3A%2F%2Fapps.facebook.com%2Fcouplespeak%3Fid%3D17%26v%3Dvideos
  3. 如果显式声明图形“id”参数,则不会发生这种情况:
    https://graph.facebook.com/?id=http%3A%2F%2Fapps.facebook.com%2Fcouplespeak%3Fv%3Dvideos%26id%3D17

不幸的是,第三点对我的情况没有帮助:我没有直接访问图表,所以我不能只插入“?id=”。

URL Linter

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

  1. 当嵌套编码参数字符串为“?v=videos&id=17”时,为“3M Couple Speak Video Contest”呈现 Open Graph 标签。这是缺少“id”参数时的预期行为:
    https://developers.facebook.com/tools/lint?url=http%3A%2F%2Fwww.3mframeworks.com%2Fpages%2Fredirect%3Furl%3Dhttp%253A%252F%252Fapps.facebook.com%252Fcouplespeak%253Fv%253Dvideos%2526id%253D17
  2. 当嵌套编码参数字符串为“?id=17&v=videos”时,为“3M Couple Speak Translation Contest”呈现 Open Graph 标签。这是缺少“v=videos”时的预期行为:
    https://developers.facebook.com/tools/lint?url=http%3A%2F%2Fwww.3mframeworks.com%2Fpages%2Fredirect%3Furl%3Dhttp%253A%252F%252Fapps.facebook.com%252Fcouplespeak%253Fid%253D17%2526v%253Dvideos
  3. 非嵌套、非编码的参数字符串不会发生这种情况:
    https://developers.facebook.com/tools/lint?url=http%3A%2F%2Fapps.facebook.com%2Fcouplespeak%3Fv%3Dvideos%26id%3D17
  4. 对于其他 Open Graph 解析器,切换嵌套编码参数的顺序会产生相同的数据,这是正确的:

再次不幸的是,第三点对我的情况没有帮助:我们需要嵌套和编码 URL。

这解释了我看到的错误数据,以及为什么它只发生在具有多个参数的 URL 上。我提交了 bug report到 Facebook。

关于Facebook URL Linter 提取错误页面的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6755610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com