2010-11-30 12 views
9

Sto utilizzando this per creare pulsanti segui twitter sulla mia web-app twitter. L'implementazione è semplice come questo:c'è un'opzione di callback con il widget "segui pulsante" di Twitter

<span id="follow-twitterapi"></span> 
<script type="text/javascript"> 

    twttr.anywhere(function (T) { 
    T('#follow-twitterapi').followButton("twitterapi"); 
    }); 

</script> 

quando si inserisce il codice nel documento HTML che si ottiene questo pulsante in quell'elemento arco in un iframe:

alt text

dopo aver fatto clic seguire, si ottenere questo (o una cosa simile dicendo che stai seguendo @someone):

alt text

tuttavia non posso ottenere qualsiasi informazione indietro alla mia app dopo aver usato questo pulsante, (poiché questo è reso in un iframe e a causa della stessa politica di origine di javascript, non posso accedere ai contenuti di quell'iframe), ci sono dei metodi forniti con questo widget, per informare la mia app quando un utente inizia a seguire qualcuno che usa questo?

Grazie.

risposta

8

È possibile. Ecco il mio codice:

<a href="https://twitter.com/gafitescu" class="twitter-follow-button">Follow @gafitescu</a>  
<script src="//platform.twitter.com/widgets.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    twttr.events.bind('follow', function(event) { 
     console.log(event); 
     var followed_user_id = event.data.user_id; 
     var followed_screen_name = event.data.screen_name; 
    }); 
</script> 
1

Si potrebbe provare a utilizzare JSONP per superare la restrizione interdominio.

Invece di avvisare, come di seguito (che mostra solo come ottenere i dati che potrebbero essere rilevanti - un elenco di follower o un numero totale di follower), è possibile impostare una variabile per controllare l'ultimo conteggio e vedere se è incrementato (ovviamente, ciò potrebbe essere dovuto all'incremento da parte di qualcuno che non utilizza la tua app, ma non è sicuro se ne avessi avuto bisogno).

$.getJSON('http://api.twitter.com/1/followers/ids.json?screen_name=brettz9&callback=?', 
    function (obj) { 
      // Shows the follower ids 
     alert(obj); 
    } 
); 

o semplicemente controllare il seguace contare:

$.getJSON('http://api.twitter.com/1/users/show.json?screen_name=brettz9&callback=?', 
    function (obj) { 
     alert(obj.followers_count); 
    } 
); 

Invece di usare lo script originale, allora, si era appena includono l'immagine di follow direttamente all'interno un link e impostare un evento onclick che, se cliccato , scambia l'immagine e avvia il polling con setInterval per verificare se il conteggio dei follower è cambiato. Oppure, se volessi utilizzare il widget per sfruttare la consapevolezza degli utenti, potresti comunque effettuare il polling.

+1

destra, che è una soluzione mi piacerebbe assumere di avere tale meccanismo in twttr.anywhere biblioteca, succhia a quanto pare in quel modo. – Sinan

+0

Non vedo perché questo dovrebbe mai essere usato al posto del callback. Forse la richiamata non era disponibile al momento in cui questa risposta è stata scritta? – sricks

1

È possibile utilizzare sotto il codice. Otterrete

SEGUE!

avviso dopo aver fatto clic sul pulsante di seguito

<html> 
<a href=http://twitter.com/directdialogs class="twitter-follow-button" 
data-show-count="true">[email protected]</a> 
<script type="text/javascript" charset="utf-8"> 
    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")); 
</script> 
<script> 
twttr.ready(function (twttr) { 
    twttr.events.bind('follow', function(e) { 
    alert("FOLLOW!") 
    }); 
}); 
</script> 
</html> 
Problemi correlati