在应用数据库中捕获Facebook消息的详细信息

时间:2011-08-25 21:02:26

标签: javascript jquery facebook

在我的Facebook应用程序中,我正在使用FB.ui {method:'send'...}显示消息窗口。我想捕获收件人列表(存储在'recipitents []'隐藏表单字段中)以及应用程序数据库<中消息文本 /强>

有办法吗?

这是我到目前为止所提出的:

  1. 动态在DOM元素中设置onclick属性(对应于Send按钮。到目前为止,我已经能够使用浏览器开发工具(例如IE9中的F12)但不是在代码中;它可能很棘手,因为加载时不存在对话框)。不幸的是,我无法定义一个在适当范围内的Javascript函数(我认为只有一个全局范围)才能找到它的onclick回调。

  2. 构建 Facebook发送对话框来自更基本的构建块(例如,朋友选择器,发送方法调用),所以我'拥有'点击事件。< / p>

  3. 克隆 FB.ui()代码并修改,以便在调用重定向网址时包含其他参数。

  4. 要求用户将我包含在“收件人”列表中(实际上只是最后的手段),或者将“到”字段默认为应用程序的用户ID。

  5. 最后,我希望能够通过Javascript调用我的Web服务,在我的应用程序数据库中记录消息详细信息。

1 个答案:

答案 0 :(得分:1)

我很确定这不是通过API设计的。 “发送”按钮在iframe中运行,因此浏览器安全性将阻止您通过Javascript访问其内部状态。

其他一些方法(例如使用FB.ui对话框发布到用户的墙上)在回调中提供了帖子ID,你可以在Graph API中检查这一点,但是Send按钮不会返回这样的内容。

对于“发送”按钮,您可以在Javascript SDK中订阅message.send事件,并接收包含已发送的URL的回调,但不会收到发送给谁的回调。 (https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/ - 事件本身当前未列在那里,但确实存在)

我无法想到为什么你想要进行这种类型的跟踪,它看起来像是一个很少使用政策的用例。