javascript - Facebook 共享单页应用程序

标签 javascript facebook angularjs facebook-graph-api

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

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

(我听说 Google+ 最近支持在发送回预览之前在服务器端呈现 javascript 逻辑,但显然这不是对其他类似服务的普遍支持。Google.com 也支持索引基于 js 的单页应用程序。)

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

========

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

最佳答案

我们的情况是一样的。简单的解决方案是在您的服务器将提供给 Facebook 爬虫的页面中使用 Open Graph 元标记。 基本上,您需要在服务器端执行您的 Web 应用程序在客户端执行的操作。工作量在很大程度上取决于您的托管技术(MVC 使其 super 简单)、您的 URI 格式和您使用的 API。

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

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

关于javascript - Facebook 共享单页应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19997564/

相关文章:

facebook - 如果不使用标记为 * 的可索引列,我如何使用 FQL 查询所有事件

android - 在 Pygame 上制作游戏。有什么方法可以导出到 Facebook 或 Android?

json - 没有嵌套 ng-repeat 的嵌套对象的 Ng-repeat

javascript - 作用域未在处于不同状态的函数内更新

javascript - 想要在 Angular JS 中将多个 json 对象转换为数组

javascript - php - 自动关闭打开的 html 标签

javascript - 如何通过#ID 100% AngularJS 获取元素 SELECT 中的文本和值

javascript - 使用 jQuery 时如何在 ASP.NET 中同时触发 OnClick 和 OnClientClick 事件?

javascript - 函数只运行一次

ios - FB 用户 emailID 未获取