apache - Linkedin Open Graph 共享不起作用

标签 apache mod-rewrite linkedin facebook-opengraph linkedin-api

我有一个用于 Open Graph Protocol 的页面设置,因为当我们使用 LinkedIn 共享 URL 时,我们的应用程序现在是基于 Angular 1.x 构建的。共享弹出窗口打开,但它有时不会抓取打开的图形标签,有时它会显示正确的抓取标签,直到上周它都运行良好。这是显示预览区域的图像: Linkedin Share Preview

分享链接的场景:

  1. 用户访问我们的网站:www.example.com/event/[EVENT_ID] 并点击分享到 LinkedIn。
  2. 弹出窗口使用:https://www.linkedin.com/shareArticle?mini=true&url=https://example.com/event/0u83s43rf6r/4295028179 其中4295028179 是事件 ID,0u83s43rf6r 是一个用于共享的随 secret 钥,因为缓存破坏。
  3. 现在我们使用 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/

相关文章:

java - 如何在java中求解两个具有两个变量的线性方程..?

php - 使用 .htaccess 强制将 xxx.php URL 转发到 xxx

php - 如何用不同的ip捕获同一个用户

apache - HT访问: How to FILTER A STRING anywhere in the full URL string?

php - Apache mod_rewrite : RewriteMap directive using PHP script on Windows machine

java - 社会联系

PHP 总是创建一个新 session

PHP $_SERVER ["PATH_INFO"] url 中没有 index.php 时不返回信息(htaccess url 重写)

php - 如何使用 PHP 使用 LinkedIn 注册 API 获取电子邮件地址

php - 领英连接API