为分享对话框获取 Facebook 的“分享/发布”事件

Posted

技术标签:

【中文标题】为分享对话框获取 Facebook 的“分享/发布”事件【英文标题】:Get Facebook 'share/post' event for share dialog 【发布时间】:2014-02-12 16:01:39 【问题描述】:

我的网站允许每个用户在 facebook 上共享一个链接,例如 http://www.my-site.com。

我想统计每个用户分享我的网址的次数,以及最后一次分享的日期。如果有人会使用 FB SDK(请原谅咖啡脚本),这将非常容易:

link = "my-site.com"

FB.ui
    method: "feed"
    link: link
    from: from
  , (response) ->
    unless response is null or response is undefined
      $.ajax
        dataType: "json"
        data: response
        url: some-url
        success: (data, textStatus, jqXHR) ->
          // Do stuff

我什至可以让自己获得更多创建和使用 facebook 的事件订阅之一,例如:

FB.Event.subscribe "message.send", message_send_callback

但是,据我所知,FB.ui() 提供的对话框都不允许用户选择他想发布到哪个组/墙/朋友,就我而言,这是强制性的.幸运的是,非 SDK 共享对话框确实允许这样做,但在获取发布事件和响应时提出了更大的挑战,因为它迫使我向弹出窗口添加一个 onload 事件侦听器 (var popup = window.open(...); popup.addEventListener...) ,然后在 post 事件中添加另一个事件侦听器,这当然具有挑战性,因为弹出窗口会打开另一个域,facebook 的,我无法控制。

有没有办法做我想要完成的事情?我是否缺少使用户能够选择发布位置的 FB.ui() 对话框?如果没有 - 有没有办法获取共享对话框的事件和响应?

【问题讨论】:

不,我认为目前还没有办法将“共享”对话框与 FB.ui 一起使用,或者让它提供任何反馈。您可以尝试使用带有to 参数的提要对话框——如果您愿意在它前面放置一个您自己的对话框,让用户选择一个发布目标。尽管这会将您限制在他们的朋友和您可能可以建议的页面上——如果后者应该是特定于用户的,您将必须请求获得许可才能阅读他们的喜欢等。 @CBroe,这实际上就是我最终要做的——我使用“from”和“to”属性以及其他不相关的技术来获取所有附属的 fb 实体。如果您将其添加为答案,我会将其标记为正确的答案。谢谢! 【参考方案1】:

不,我认为目前无法通过 FB.ui 使用“共享”对话框,或者让它提供任何反馈。

您可以尝试使用带有 to 参数的提要对话框 - 如果您愿意在其前面放置一个您自己的对话框,让用户选择发布目标。

虽然这会将您限制在他们的朋友和您可能可以推荐的页面上——如果后者应该是特定于用户的,您将必须请求获得许可才能阅读他们的喜欢等。

【讨论】:

以上是关于为分享对话框获取 Facebook 的“分享/发布”事件的主要内容,如果未能解决你的问题,请参考以下文章

Facebook iOS SDK 分享对话框 - 在朋友的墙上分享

如何在 Facebook 分享对话框中设置描述(你在想啥?)

如果 Facebook Feed 对话框已弃用,您如何在 Facebook 上分享帖子?

Facebook分享对话框立即消失

swift中的Facebook Native Share对话框

Facebook 分享对话框立即消失