0

我正在开发一个 MEAN 堆栈应用程序(Mongo、Express、Angular、Node),我想在 Facebook 有趣的页面上分享一些页面,并有一个像这样的个性化链接。 https://www.evernote.com/shard/s414/sh/6c61c036-abc6-4eb9-b355-41af05760979/45fce4c1795580266f1247dba3452d62/res/31e7a3bd-7258-4910-bb05-5e2e61cd2d96/skitch.png

我正在使用动态 og 标签在共享链接上显示不同的数据

<html itemscope itemtype="http://schema.org/Article">
<!-- Open Graph --> 
<meta property="og:title" content="{{og_title}}" /> 
<meta property="og:type" content="article" /> 
<meta property="og:url" content="{{og_url}}" />
<meta property="og:image" content="{{og_image}}" />
<meta property="og:description" content="{{og_description}}" /> 
<meta property="og:site_name" content="MYSITENAME" /> 
<meta property="fb:admins" content="MYAPPID" />

这些变量由 $http.get() 从服务器检索

我还使用在我的 EC2 实例(端口 3000)上运行的 prerender.io 服务器,以便完美地抓取我的 javascript 页面。

app.use(require('prerender-node').set('prerenderServiceUrl', 'http://'+ config.DNS +':3000/'));

Prerender 工作正常,因为当我输入

http://DOMAINE.com:3000/http://DOMAINE.com/items/5376899f3230687806000016

我得到了页面的快照,当我显示这个页面的代码源时,我得到了正确的数据。

<!-- Open Graph data --> 
<meta property="og:title" content="Pink floyd CD"> 
<meta property="og:type" content="article"> 
<meta property="og:url" content="DOMAINE.com:80/items/53763aad67afe39d05000017">
<meta property="og:image" content="https://fpid.s3.amazonaws.com/items/4748_DarkSideOfTheMoon.jpg">
....

我的问题是当我在 Facebook 上分享这个网址时

http://DOMAINE.com/items/5376899f3230687806000016

我没有得到一个很好的图片、标题和描述链接,而是得到了这个糟糕的链接

https://www.evernote.com/shard/s414/sh/ac398446-276e-46ae-bc1e-eab5fea5cc31/ac5339dc23b07ccaa853a0b9e86d4c4c/res/c99109cc-d038-4837-a303-dbb5f7ad376c/skitch.png

4

2 回答 2

4

您将不得不创建一个页面,该页面通过具有适当信息的节点从服务器呈现。您可以通过检查 facebook 用户代理并在节点中提供不同的页面/路由(而不是您的 Angular 应用程序)来做到这一点。这个页面只需要显示og标签。

如何识别 Facebook 用户代理

于 2014-07-19T16:00:51.330 回答
0

这个问题的一些背景信息: https ://developers.google.com/webmasters/ajax-crawling/

它如何与动态渲染一起工作: https ://prerender.io/how-it-works

以下是您可以使用的一些服务: https ://www.google.com/search?client=ubuntu&channel=fs&q=angular.js+seo&ie=utf-8&oe=utf-8&gfe_rd=cr&ei=EBnSU-CNB6fc8ge-uIC4Aw

于 2014-07-25T08:45:53.350 回答