it-swarm.com.de

Gibt es einen Rückruf für den Tweet-Button von Twitter?

Gibt es eine Möglichkeit, einen Rückruf auf der Tweet-Schaltfläche von Twitter zu registrieren? Ich möchte nachverfolgen können, welche bestimmten Nutzer auf meiner Website einen Link getwittert haben. Ich kann kein onClick-Ereignis hinzufügen, da es sich um einen domänenübergreifenden iFrame handelt. Irgendwelche anderen Ideen?

Ich habe eine Möglichkeit gesehen, es zu tun , aber es scheint unzuverlässig. Ihre Dokumentation erwähnt nichts, also suche ich Hilfe bei einer Problemumgehung.

33
jbnunn

Twitter hat Web Intent-Ereignisse für loaded, rendered, resize, Tweet, follow, retweet, like und click.

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

Das Verhalten wurde geändert im Herbst 2015 aufgrund der Unzuverlässigkeit von Rückrufen nach Abschluss eines Ereignisses.

Sie werden jetzt ausgelöst, wenn ein Benutzer die Aktion auf Ihrer Seite aufruft, und nicht nachdem die Aktion abgeschlossen ist.

Beispiel für das Laden von 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>
46
abraham

Ich habe gerade ein Tweet-Callback-Ereignis implementiert. 

Weitere Informationen zum Rückrufereignis von Twitter
- Twitter Web Intents
- Web Intents Javascript Events

Der Javascript Rückruf

$.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);        
 });

Die Tweet-Schaltfläche:

 <a href="http://Twitter.com/intent/tweet?url=http://test.com;via=stack">Twitter</a>
23
Jhony Fung

Wenn Sie die JS für Twitter-Widgets laden, können Sie eine Rückruffunktion an das Tweet-Ereignis binden. Siehe den Code unten:

<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>
4
James Lawruk

ja, es gibt eine Rückruffunktion. auch für benutzerdefinierte Twitter-Schaltflächen . finden Sie es hier: https://dev.Twitter.com/discussions/671

3
michael
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);
});

Arbeitsbeispiel

0
Muhammad Tahir