Javascript 检测Facebook共享成功?

Javascript 检测Facebook共享成功?,javascript,facebook,Javascript,Facebook,我希望检测页面上的Facebook共享是否成功,并在成功后更改框的值。我可以很好地处理后者,但是对于如何执行实际的共享检测,我有点不知所措。我已经在Google上搜索并找到了FB.ui,但我如何将其实际实现到页面中并让其运行检测?我不知道您是否正在使用Facebook SDK创建共享对话框,但使用SDK您可以通过以下方式获得响应状态(当然,您必须首先加载Facebook脚本): 然后,您可以将单击事件指定给按钮以启动共享对话框。之后,调用回调或使用“.on”jQuery方法了解响应状态: $('

我希望检测页面上的Facebook共享是否成功,并在成功后更改框的值。我可以很好地处理后者,但是对于如何执行实际的共享检测,我有点不知所措。我已经在Google上搜索并找到了FB.ui,但我如何将其实际实现到页面中并让其运行检测?

我不知道您是否正在使用Facebook SDK创建共享对话框,但使用SDK您可以通过以下方式获得响应状态(当然,您必须首先加载Facebook脚本):

然后,您可以将单击事件指定给按钮以启动共享对话框。之后,调用回调或使用“.on”jQuery方法了解响应状态:

$('your-facebook-share-button').on('click', function( e ) {
    e.preventDefault();

    facebookShare(function( response ) {
        // simple function callback
        console.log(response);
    });
});

// custom jQuery events
$(document)
    .on('fb-share.success', function( e ) {
        console.log('success events');
    })
    .on('fb-share.error', function( e ) {
        console.log('error events');
    });
我还没有测试过这段代码,但我认为它可以工作


祝你好运

首先,您必须包含Facebook sdk.js库才能使用它的所有方法(最好是在打开body标签之后)

我不知道你是如何组织你的代码的,但是,有了这些变化,它必须工作

您可以在这里查看:


干杯。

为什么要检测它?如果用户在产品页面上完成了共享,我们将为他们提供折扣/特别促销。根据Facebook平台政策,这是不允许的,您可以阅读。因此,节省您的时间,您的页面将不会被Facebook禁止。我看不到有任何内容表明这是禁止的,您是否有我没有看到的政策的特定部分?4.5:“仅激励某人登录您的应用程序,如您的应用程序页面、在应用程序页面上输入促销或在某个地方登录。不要激励其他行为。(从2014年11月5日起生效,你可能不再激励人们喜欢你的应用程序页面)。“需要做一些调整,但我认为这可能会有所帮助。我很感激benjasHu!我尝试过调整,但我对Facebook的API非常陌生,对js/jQuery来说还不是那么棒(现在!)。这看起来像是我在正确的轨道上吗?请记住,我用适当的信息更新了应用ID和网站url,应用是公开的,等等。从那里我可以获得facebook脚本Benjashu,这就成功了。我还做了一点小改动,将所有javascript放在页脚中,除了最初的sdk.js库调用是right在开头的body标签后面。它就像一个符咒!我很高兴你成功了!:)如果你认为这是一个正确的答案,请把它标记为正确;)谢谢@benjasHu,这很酷。然而,我只是测试了各种组合,发现有一种组合不适合我。例如,当用户单击共享按钮时,将打开一个弹出窗口。若用户尚未登录Facebook,它将提示用户输入电子邮件和密码以登录。我意识到,如果用户点击弹出窗口中的“X”关闭图标,它将检测到facebook共享错误,这是正确的。然而,如果用户点击Facebook表单中的“取消”,它将检测为Facebook共享成功。请告知我们如何处理“取消”按钮?@有了Helds,您可以解决上述问题吗?我也面临同样的问题。
$('your-facebook-share-button').on('click', function( e ) {
    e.preventDefault();

    facebookShare(function( response ) {
        // simple function callback
        console.log(response);
    });
});

// custom jQuery events
$(document)
    .on('fb-share.success', function( e ) {
        console.log('success events');
    })
    .on('fb-share.error', function( e ) {
        console.log('error events');
    });
<script>
(function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = "//connect.facebook.net/en_US/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));
</script>
window.facebookShare = function( callback ) { [...]