Facebook与GWT的开放图形

问题描述:

我们正在开发一个带有GWT的页面,该页面有一个列表视图并选择一个项目,以ajax样式打开一个细节,页面没有刷新,客户端显示一个新视图。当显示该详细信息(或直接通过其url访问)时,开放图的元标记设置在标题中。该细节是我们的Open Graph对象。Facebook与GWT的开放图形

问题是,通过代码设置元标记(即使在onModuleLoad方法的开始处)也不起作用,因为当用户执行操作并且Facebook认为该页面不是Open图一。我们假设FB直接读取页面而不执行任何JavaScript。

任何想法或解决方法呢?

在此先感谢。

你需要这个服务器端,有处理程序,需要从查询字符串或路径对象ID,并做了两两件事:

  1. 写出来供Facebook的正确的标签。
  2. “深入链接”到您的GWT应用程序中,以显示 对象的详细视图。

因此,对于像URL:

http://myapp.com/og/?type=movie&id=1234 
http://myapp.com/og/?type=film&id=6789 

的HTML输出应该拥有所有指定对象的标签,它应该有一个“书签”,或者需要一些其他信息启动您的GWT应用程序导航到详细视图。

每个对象都需要自己的永久性,不同的URL。所以当你将它传递给facebook API时,facebook可以抓取它,并且可以将它作为新闻馈送故事中的链接发布(这样机器可读,并且显示非机器的相关内容!)

它应该在这里通过测试: http://developers.facebook.com/tools/debug

+0

现在我有一个问题,#之后的任何内容都不会发送到服务器。这就是细节ID的地方。我可以创建两个网址吗?真正的#和一个虚假的只是“欺骗”Facebook。 – 2012-03-05 19:21:36

+0

那么..'假'是重要的:)这是你需要传递给Facebook SDK的那个,这是用户从新闻报道中引导的那个。 – aidanok 2012-03-06 22:30:24

最近的一些信息,请访问:

把OpenGraph标签在你的服务器端HTML的渲染,比如详细的在这里: http://www.gwtproject.org/articles/dynamic_host_page.html#servlet

因为谷歌认为AJAX爬行不赞成,他们建议使用服务器端的HTML渲染以及: https://webmasters.googleblog.com/2015/10/deprecating-our-ajax-crawling-scheme.html