我的团队最近推出了一款大量使用Facebook的Like Button的网络应用程序。他们中的大多数工作正常,但Facebook或其URL Linter无法正确识别几个相似的URL。这些网址适用于我们的应用中的网页,该网页会重定向到Facebook应用中的相应网页...
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解析器返回正确的数据:
og:它: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
我花了几个小时寻找解释......
最可能的罪魁祸首似乎是Facebook缓存,但它已经被怀疑很长时间,因为这个网站是当前直播活动的一部分,强调喜欢活动,我希望有人知道一个技巧,尽快让这个工作。谢谢!
答案 0 :(得分:5)
Facebook的Graph API和URL Linter中的一些内容会删除多个URL参数中的第一个。
图表API
不幸的是,第三点对我的情况没有帮助:我没有直接访问图表,所以我不能只插入“?id =”。
URL Linter
对于我的应用程序,需要所有参数来呈现正确的Open Graph元标记,结果支持我的发现:
不幸的是,第三点再次对我的情况没有帮助:我们需要对URL进行嵌套和编码。
这解释了我看到的错误数据,以及为什么它只发生在具有多个参数的URL上。我向Facebook提交了bug report。
答案 1 :(得分:1)
Facebook页面上的iframe源代码似乎是这个网址:
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" />