我有一个用于 Open Graph Protocol 的页面设置,因为当我们使用 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
是一个用于共享的随 secret 钥,因为缓存破坏。 - 现在我们使用 apache
mod_rewrite
将 LinkedIn、Facebook、Twitter 机器人重定向到我们的爬虫页面,其中呈现了开放图标签。
.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 共享 API 时,请使用 LinkedIn Post Inspector 查看您的网站。 ,这将告诉您 LinkedIn API 如何查看您的网页。它涵盖了很多东西,来自<title>
标签,到 og:
标签,到 oEmbed
标签等等等等。
担心缓存?为什么不测试像 example.com?someFakeParameter=123
这样的 URL ?这将同样绕过 LinkedIn Post Inspector 的缓存。
如果您可以发布您分享的实际 URL,我可以给您一个更好的答案,但希望这里的内容对您有所帮助!
关于apache - Linkedin Open Graph 共享不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42251479/