Facebook Graph API SEO评论和亵渎过滤器

时间:2011-10-21 11:13:50

标签: facebook facebook-graph-api comments facebook-social-plugins

我正在考虑整合我们网站上留下的Facebook评论,其中内容可以被搜索引擎和人们(尽管我非常怀疑会有很多人)抓取,但他们没有在他们的浏览器上启用了Javascript。

目前我们的Facebook评论是通过使用Facebook评论社交插件(使用<fb:comments href="MY_URL" num_posts="50" width="665"></fb:comments>标签)显示的。这最终会呈现一个iFrame(搜索引擎爬虫大多会忽略它),因此计划是使用基本HTML呈现此信息并对其进行格式化。要执行此操作,请使用图谱API提取评论 - 然后仅向抓取工具和禁用Javascript的人员显示评论。

这一切都很好地使用Graph API调用(https://graph.facebook.com/comments/?ids=MY_URL),解析JSON结果并在页面上显示它。问题是<fb:comments>方法根据我们在其中一个Facebook应用上设置的黑名单来过滤我们的结果。具有相关黑名单的AppId使用元数据(<meta property="fb:app_id" content="APP_ID"/>)存储在页面上,<fb:comments>控件显然必须以某种方式用来过滤评论。

问题是Graph API方法没有过滤任何结果,因为我猜没有指定黑名单(或包含黑名单的App Id)。有没有人知道如何为API调用URL指定Facebook App ID,或者知道如何为违反黑名单条款的其他方式提取内容?

另一方面,我知道关于在评论中过滤内容的争论仍在继续,但这是管理层决定实施黑名单,而且我对改变没有影响 - 只是因为任何人都觉得有必要解释原因内容过滤为什么或不是一个好主意!

非常感谢对解决方案的任何想法。

3 个答案:

答案 0 :(得分:1)

不幸的是,没有办法使用API​​访问过滤的评论列表 - 这可能是合理要求在API中有这个 - 你应该在Facebook's bug tracker

中提交一个愿望清单项目

否则,我能想到的唯一解决方案是在检索和显示API中的注释时实现自己的过滤器。

根据Comments plugin documentation,Facebook上的过滤器实现为一个简单的子串匹配,因此实现它应该是微不足道的。 一个相当简单的正则表达式匹配应该能够快速检查每个评论对一个相对较长的列表。

(不幸的是,这里的权衡是实现过滤器很容易,但你还需要编写一个接口,这样无论谁更新不允许的单词列表都可以维护Facebook插件的列表,以及你自己的过滤。)

来自docs的引用:

The comment is checked via substring matching. This means if you blacklist the 
word 'at', if the comment contains the sequence 'a' 't' anywhere it will be
marked with limited visibility; e.g. if the comment contained the words 'bat',
'hat', 'attend', etc it would be caught.

答案 1 :(得分:0)

非常确定目前无法通过图API进行此操作,我唯一可以建议的是采用黑名单并构建自己的过滤器

答案 2 :(得分:0)

看起来您可能不再需要这样做,因为谷歌已经开始索引Facebook评论

http://www.labnol.org/internet/google-indexes-facebook-comments/20295/