Facebook与单页应用程序共享

时间:2013-11-15 09:23:45

标签: javascript facebook angularjs facebook-graph-api

此问题可能与确切的软件堆栈,框架或语言无关。

对于我当前的项目,我们使用AngularJS来构建前端,该前端具有一个恒定的入口页面来加载实际数据和渲染,这对于CDN很容易,并且有利于从浏览器端快速加载速度。但是对于某些社交功能,这样的架构师可能会导致一些问题。例如,当您将感兴趣的链接粘贴到Facebook门户以进行共享时,Facebook将抓取您的页面并显示预览。如果着陆页为空,则此类预览无效。

(我听说Google+最近支持在发回预览之前在服务器端渲染javascript逻辑,但显然它不是对其他类似服务的常见支持.Google.com还支持基于js的单页应用程序的索引。)

有没有更好的解决方案来优雅地解决这个问题,而不是回退到包含真实数据的动态页面?我在理解这个问题时遗漏了什么吗?

======

...我甚至想到了这一点,对于标识为FB请求的请求(如用户代理),将其重定向到一个特殊的网关,包装像PhantomJS一样,获取页面,渲染服务器端,然后发送将DOM树快照作为FB的内容返回以生成预览。但我也怀疑这是一个好方向。 :(

1 个答案:

答案 0 :(得分:0)

我们处于同样的境地。简单的解决方案是在服务器将为Facebook刮刀提供的页面中使用Open Graph元标记。 基本上你需要做服务器端你的web应用程序在客户端做什么。工作量很大程度上取决于您的托管技术(MVC使其非常简单),您的URI格式和您使用的API。

你会在这里找到一些解释: https://developers.facebook.com/docs/plugins/share-button/

打开图表介绍: http://ogp.me/