我期待檢測一個頁面上的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共享
- 2. 如何檢測用戶與SLComposeViewController成功共享
- 3. Facebook共享器iPhone集成
- 4. 問題在Facebook共享功能
- 5. Facebook共享PHP
- 6. Facebook - 檢查誰共享鏈接
- 7. Facebook的Android集成圖像共享
- 8. Facebook共享,標題不共享
- 9. Facebook共享按鈕不能共享
- 10. 共享功能
- 11. Facebook與javascript共享
- 12. Facebook共享問題?
- 13. Facebook共享腳本
- 14. Facebook共享緩存
- 15. Android的成功共享意圖
- 16. 檢測通過Apache共享壓縮
- 17. 的Python:檢測共享的話
- 18. 集成測試共享數據庫
- 19. LinkedIn共享功能
- 20. Facebook共享鏈接內容
- 21. Facebook共享網址數據
- 22. 重定向到Facebook共享?
- 23. facebook共享使用php
- 24. 與whatsapp/Facebook共享網址
- 25. Facebook共享鏈接腳本
- 26. Facebook共享者403禁止
- 27. Facebook的共享狀態
- 28. Facebook共享鏈接問題
- 29. Facebook共享器參數
- 30. Facebook上的共享信息
你爲什麼要檢測它? – 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