【发布时间】:2017-02-15 14:01:46
【问题描述】:
我有一个开放图形协议的页面设置,因为当我们使用 LinkedIn 共享 URL 时,我们的应用程序现在是基于 Angular 1.x 构建的。共享弹出窗口会打开,但有时它不会抓取打开的图形标签,有时它会显示正确的抓取标签,直到上周它都可以正常工作。这是显示预览区域的图像:
分享链接的场景:
- 用户访问我们的网站:
www.example.com/event/[EVENT_ID]并点击分享到 LinkedIn。 - 弹出窗口使用以下方式打开:
https://www.linkedin.com/shareArticle?mini=true&url=https://example.com/event/0u83s43rf6r/4295028179,其中4295028179是事件 ID,0u83s43rf6r是用于共享的随机键,因为缓存无效。 - 现在我们正在使用 apache
mod_rewrite将 LinkedIn、Facebook、Twitter 机器人重定向到我们的爬虫页面,在该页面中呈现 Open graph 标签。
.htaccess 文件中的 Apache Mod 重写设置
RewriteCond %{HTTP_USER_AGENT} ^(facebookexternalhit/(.*)|Facebot|Twitter(.*)|Pinterest|LinkedIn(.*)|LinkedInBot)$ [NC]
RewriteRule ^(event)/([_0-9a-zA-Z]+)/([0-9]+)$ https://share.example.com/web/crawler/details/$3 [R=301,L]
所以当爬虫基于 USER AGENT 重定向时,结束 url 变成了开放图形标签呈现的位置:http://share.example.com/web/crwaler/details/4295028179
这里是渲染的 html 标签:
<html>
<head>
<script type="text/javascript">window.location = 'https://example.com/event/236129271' // if it's a browser then redirect it to website</script>
<meta property="og:title" content="Event Title" />
<meta property="og:description" content="Event Description" />
<meta property="og:image" content="Event Thumbnail" />
<meta name="title" content="LinkedIn Share Test" />
<meta name="description" content="Event Description" />
<meta property="og:image:width" content="188" />
<meta property="og:image:height" content="71" />
<!-- Twitter Card Working Fine-->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Event Title">
<meta name="twitter:description" content="Event Description">
<meta name="twitter:image" content="Event Image">
</head>
<body>
</body>
</html>
上周这个逻辑在 Linkedin 上运行良好,但现在不知何故不起作用。
【问题讨论】:
-
我从来没有得到 OG 属性来处理linkedin。我认为他们只解析来自流行网站的标签。您可以复制另一个页面的源代码,将其作为原始 HTML 粘贴到您自己的服务器上,它们不会解析标签。您的标签没有问题,这是 100% LI 支持问题。
-
尝试跟踪您的访问日志文件或对 Linked(爬虫 UA)进行 grepping,您可能会发现 LI 甚至没有抓取您的网站。
-
我已经检查了访问日志,Linkedin bot 即将到来,但它没有在弹出窗口中显示准确的预览。
-
你的图片可能太小了。 80x150 是报告的最小值,根据:linkedin.com/help/linkedin/answer/46687/…
标签: apache mod-rewrite linkedin facebook-opengraph linkedin-api