Linkedin Open Graph Sharing无效

时间:2017-02-15 14:01:46

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

我有一个开放图谱协议的页面设置,因为我们的应用程序是基于Angular 1.x构建的,现在我们使用LinkedIn共享URL。分享弹出窗口打开但有时它不会抓取打开的图形标签,有时它会显示正确的抓取标签,直到上周才正常工作。这是显示预览区域的图像: 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是随机密钥,因为缓存无法进行共享。
  3. 现在我们正在使用apache mod_rewrite将LinkedIn,Facebook,Twitter bot重定向到我们的抓取页面,其中展示了打开的图形标记。
  4. .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上工作得很好,但现在不知怎的,它还没有工作。

1 个答案:

答案 0 :(得分:0)

您的代码看起来不错,您拥有正确的og:标签,等等。

无论何时不确定您使用的是LinkedIn共享API,请使用LinkedIn Post Inspector来访问您的网站,这将告诉您LinkedIn API如何查看您的网页。它涵盖了许多内容,从<title>标签到og:标签,再到oEmbed标签等等,等等。

担心缓存吗?为什么不测试像example.com?someFakeParameter=123这样的URL?同样,这将绕过LinkedIn Post Inspector的缓存。

如果您可以发布要共享的实际URL,我可以为您提供更好的答案,但希望这里有帮助!