2011-02-09 21 views
30

Có cách nào để đăng ký gọi lại trên nút Tweet của Twitter không? Tôi muốn có thể theo dõi những người dùng cụ thể nào trên trang web của tôi đã tweet một liên kết. Tôi không thể thêm vào sự kiện onClick vì đó là iFrame đa miền. Bất kỳ ý tưởng nào khác?Có một cuộc gọi lại cho nút Tweet của Twitter không?

Tôi đã xem one way to do it nhưng có vẻ như không đáng tin cậy. Their documentation không đề cập đến bất cứ điều gì vì vậy tôi đang tìm kiếm sự trợ giúp với công việc xung quanh.

Trả lời

45

Twitter có Web Intent events cho loaded, rendered, resize, tweet, follow, retweet, like, và click.

twttr.events.bind(
    'tweet', 
    function (event) { 
    // Do something there 
    } 
); 

behavior was changed vào mùa thu năm 2015 do sự không chắc chắn của các cuộc gọi lại xảy ra sau khi sự kiện hoàn tất.

Bây giờ, chúng sẽ được kích hoạt khi người dùng gọi hành động trong trang của bạn, thay vì sau khi hành động hoàn tất.

Example loading widgets.js:

<script> 
// Performant asynchronous method of loading widgets.js 
window.twttr = (function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0], 
    t = window.twttr || {}; 
    if (d.getElementById(id)) return t; 
    js = d.createElement(s); 
    js.id = id; 
    js.src = "https://platform.twitter.com/widgets.js"; 
    fjs.parentNode.insertBefore(js, fjs); 

    t._e = []; 
    t.ready = function(f) { 
    t._e.push(f); 
    }; 

    return t; 
}(document, "script", "twitter-wjs")); 
</script> 

<script> 
// Wait until twttr to be ready before adding event listeners 
twttr.ready(function (twttr) { 
    twttr.events.bind('tweet', function(event) { 
    console.log(event); 
    }); 
}); 
</script> 
+3

Intents thực sự là con đường để đi. Làm việc như một say mê. – montrealist

+0

Kiểm tra câu trả lời của James Lawruk bên dưới để biết ví dụ – severin

+0

Bất kỳ ai khác gặp sự cố với sự kiện Web mục đích trên IE? –

23

Tôi vừa thực hiện một sự kiện tweet gọi lại.

biết thêm thông tin về sự kiện callback Twitter
- Twitter Web Intents
- Web Intents Javascript Events

Các javascript callback

$.getScript("http://platform.twitter.com/widgets.js", function(){ 
    function handleTweetEvent(event){ 
    if (event) { 
     alert("This is a callback from a tweet") 
    } 
    } 
    twttr.events.bind('tweet', handleTweetEvent);   
}); 

Nút tweet:

<a href="http://twitter.com/intent/tweet?url=http://test.com;via=stack">twitter</a> 
+2

Tôi đã tạo biểu mẫu mã hóa câu trả lời này http://codepen.io/anon/pen/Zbwqyx?editors=101 – illusionist

-3
<a href="https://twitter.com/IamAnessaReyes" class="twitter-follow-button" data-show-count="false">Follow @IamAnessaReyes</a> 
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> 
+3

Câu trả lời chỉ có mã không tốt. Bạn nên thêm một lời giải thích. –

4

Nếu bạn tải Twitter Widget JS, bạn có thể gắn một hàm callback sự kiện tweet. Xem mã bên dưới:

<a href="https://twitter.com/intent/tweet?url=http://yoursite.com/about&text=Message">Twitter</a> 

<script>   
//Twitter Widgets JS 
window.twttr = (function (d,s,id) { 
var t, js, fjs = d.getElementsByTagName(s)[0]; 
if (d.getElementById(id)) return; js=d.createElement(s); js.id=id; 
js.src="https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); 
return window.twttr || (t = { _e: [], ready: function(f){ t._e.push(f) } }); 
}(document, "script", "twitter-wjs")); 

//Once twttr is ready, bind a callback function to the tweet event 
twttr.ready(function(twttr) {  
    twttr.events.bind('tweet', function (event) { 
     console.log('tweet, tweet'); 
    }); 
}); 
</script> 
+0

Có cách nào gọi lại có thể nhận nội dung của tweet không? Hoặc những gì sẽ là một cách thích hợp để nhận được nó? Cảm ơn. – ialphan

+0

Câu hỏi hay. Tôi không biết. –

+0

Có vẻ như câu trả lời là không. https://twitter.com/kurrik/status/433752897730256897. Tôi nghĩ rằng twitteroauth của abraham là cách để đi. Cảm ơn. – ialphan

0
function loguser(event) { 
    if (event) { 
     alert('Tweeted'); 
     console.log(event); 
    } 
} 

window.twttr = (function (d,s,id) { 
    var t, js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; js=d.createElement(s); js.id=id; 
    js.src="//platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); 
    return window.twttr || (t = { _e: [], ready: function(f){ t._e.push(f) } }); 
    }(document, "script", "twitter-wjs")); 

twttr.ready(function (twttr) { 
    twttr.events.bind('tweet', loguser); 
}); 

Working Example

Các vấn đề liên quan