我期待检测一个页面上的Facebook共享是否成功,并在成功后更改一个框的值。我可以很好地处理后者,但在执行实际共享检测方面稍微有些失落。我找到了Google,发现了FB.ui,但是我怎么才能将它实现到一个页面中并让它运行检测?检测Facebook共享成功?
回答
首先,你必须包括Facebook的sdk.js库来使用其所有方法(body标签开幕后最好右)
<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>
的问题与您http://jsfiddle.net/ysdp60cz/是Facebook分享 VAR的范围。所以,在这个例子中,只是将其包含在窗口对象:
window.facebookShare = function(callback) { [...]
我不知道你是如何安排你的代码,但是,这种改变就必须工作。
您可以点击此处查看:http://jsfiddle.net/benjasHu/3dhq9k21/
干杯。
benjasHu,这个伎俩。我也做了一些小改动,把所有的javascript都放在了页脚中,除了刚开始的body标签之后的最初的sdk.js库调用。它像一个魅力! – 2014-10-06 13:47:50
我很高兴你让它工作! :)如果您认为这是正确的答案,请将其标为正确;)谢谢! – benjasHu 2014-10-06 13:52:59
巧妙地使用自定义回调,谢谢! – 2015-09-13 17:13:54
我不知道您是否使用Facebook SDK创建共享对话框,但使用SDK可以获得类似此类响应状态(当然,您必须首先加载facebook脚本):
FB.init({
appId : 'your-app-id',
status : true,
xfbml : true,
version: 'v2.1'
});
var facebookShare = function(callback) {
var options = {
method : 'share',
href : 'your-url-to-share'
}),
status = '';
FB.ui(options, function(response){
if (response && !response.error_code) {
status = 'success';
$.event.trigger('fb-share.success');
} else {
status = 'error';
$.event.trigger('fb-share.error');
}
if(callback && typeof callback === "function") {
callback.call(this, status);
} else {
return response;
}
});
}
然后,您可以将点击事件分配给您的按钮来激发共享对话框。在此之后,调用回调或使用“对” 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');
});
我还没有测试此代码,但我认为这是可行的。
祝你好运!
需要一点调整,但我认为这可能会有所帮助。我欣赏它benjasHu! – 2014-10-03 19:48:38
不客气! – benjasHu 2014-10-03 20:10:53
我尝试过调整,但我非常新的w/Facebook的API,并没有与js/jQuery(还!)最大。 这看起来像我在正确的轨道上吗? [链接](http://jsfiddle.net/ysdp60cz/)http://jsfiddle.net/ysdp60cz 请记住,我没有更新应用程序ID和网站的URL与适当的信息,该应用程序是公开的等。 – 2014-10-03 20:23:19
- 1. 如何检测Facebook共享成功?使用JavaScript
- 2. 如何检查用户是否成功完成了Facebook共享
- 3. 检测共享IP
- 4. 如何检测用户与SLComposeViewController成功共享
- 5. 使用ShareActionProvider共享内容时检测成功/失败
- 6. android facebook sdk,分享 - 如何检测成功?
- 7. 检测与新Facebook分享按钮的成功份额
- 8. Facebook共享器iPhone集成
- 9. 当Facebook共享成功时没有FB.ui生成警报
- 10. 检测屏幕共享
- 11. 问题在Facebook共享功能
- 12. Facebook共享PHP
- 13. Facebook共享PHP - 检查是否已共享
- 14. Facebook共享:自动图像检测与og:图像
- 15. Facebook共享插件未检测到指定的帖子URL
- 16. Facebook - 检查谁共享链接
- 17. Facebook的Android集成图像共享
- 18. Facebook共享按钮不能共享
- 19. Facebook共享,标题不共享
- 20. 共享功能
- 21. 检测用于共享某些内容的共享者
- 22. Facebook与javascript共享
- 23. Facebook共享错误
- 24. Facebook共享缓存
- 25. Facebook不能共享
- 26. Facebook共享脚本
- 27. Facebook共享问题?
- 28. Android的成功共享意图
- 29. 的Python:检测共享的话
- 30. 检测通过Apache共享压缩
你为什么要检测它? – WizKid 2014-10-03 16:23:23
如果他们在产品页面上完成分享,我们将为用户提供折扣/特价促销。 – 2014-10-03 16:50:14
根据Facebook平台政策,您不能阅读https://developers.facebook.com/policy。所以,节省你的时间,你的网页不会被禁止从Facebook – WizKid 2014-10-03 16:52:10