Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a callback for Twitter's Tweet Button?

Is there a way to register a callback on Twitter's Tweet button? I'd like to be able to track which particular users on my site have tweeted a link. I can't add on onClick event because it's a cross-domain iFrame. Any other ideas?

I've seen one way to do it but it seems unreliable. Their documentation doesn't mention anything so I am looking for help with a work-around.

like image 487
jbnunn Avatar asked Feb 09 '11 16:02

jbnunn


People also ask

Why can't I press the Tweet button?

Trouble sending Tweets can often be attributed to a need to upgrade your browser or app. If you're having trouble Tweeting via the web, make sure you're using the latest version of your browser. If you can't Tweet with an official Twitter app, check to make sure you've downloaded any available updates.


2 Answers

Twitter has Web Intent events for loaded, rendered, resize, tweet, follow, retweet, like, and click.

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

The behavior was changed in the fall of 2015 due to the unreliableness of callbacks happening after an event is complete.

They will now be triggered when a user invokes the action in your page, rather than after the action is completed.

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> 
like image 189
abraham Avatar answered Sep 22 '22 19:09

abraham


I have just implemented a tweet callback event.

More information on Twitter's callback event
- Twitter Web Intents
- Web Intents Javascript Events

The 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);          }); 

The tweet button:

 <a href="http://twitter.com/intent/tweet?url=http://test.com;via=stack">twitter</a> 
like image 31
Jhony Fung Avatar answered Sep 20 '22 19:09

Jhony Fung