我有一个开放图谱协议的页面设置,因为我们的应用程序是基于Angular 1.x构建的,现在我们使用LinkedIn共享URL。分享弹出窗口打开但有时它不会抓取打开的图形标签,有时它会显示正确的抓取标签,直到上周才正常工作。这是显示预览区域的图像:
分享链接的场景:
www.example.com/event/[EVENT_ID]
并点击分享到LinkedIn。https://www.linkedin.com/shareArticle?mini=true&url=https://example.com/event/0u83s43rf6r/4295028179
其中4295028179
是事件ID,而0u83s43rf6r
是随机密钥,因为缓存无法进行共享。mod_rewrite
将LinkedIn,Facebook,Twitter bot重定向到我们的抓取页面,其中展示了打开的图形标记。 .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
呈现开放图表标记的抓取工具重定向时,结束网址会变为: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上工作得很好,但现在不知怎的,它还没有工作。
答案 0 :(得分:0)
您的代码看起来不错,您拥有正确的og:
标签,等等。
无论何时不确定您使用的是LinkedIn共享API,请使用LinkedIn Post Inspector来访问您的网站,这将告诉您LinkedIn API如何查看您的网页。它涵盖了许多内容,从<title>
标签到og:
标签,再到oEmbed
标签等等,等等。
担心缓存吗?为什么不测试像example.com?someFakeParameter=123
这样的URL?同样,这将绕过LinkedIn Post Inspector的缓存。
如果您可以发布要共享的实际URL,我可以为您提供更好的答案,但希望这里有帮助!