2010-11-30 26 views
9

J'utilise this pour créer des boutons de suivi de Twitter sur mon application web twitter. La mise en œuvre est aussi facile que cela:Y at-il une option de rappel avec widget "suivre le bouton" de Twitter

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

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

</script> 

lorsque vous mettez ce code dans votre document HTML, vous obtenez ce bouton dans cet élément span dans un iframe:

alt text

après avoir cliqué sur suivre, vous obtenir ce (ou quelque chose de semblable en disant que vous suivez @someone):

alt text

je peux cependant pas récupérer toutes les informations sur mon application après l'utilisation de ce bouton, (parce que ceci est rendu dans un iframe et en raison de la politique de javascript de même origine, je ne peux pas accéder au contenu de cette iframe), y a-t-il des méthodes? widget, pour informer mon application lorsqu'un utilisateur commence à suivre quelqu'un qui l'utilise?

Merci.

Répondre

8

Vous pouvez. Voici mon code:

<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

Vous pouvez essayer d'utiliser JSONP pour surmonter la restriction inter-domaines. Au lieu d'alerter, comme ci-dessous (qui montre juste comment obtenir les données qui pourraient être pertinentes - une liste d'identifiants suiveurs ou un nombre total de suiveurs), vous pouvez définir une variable pour vérifier le dernier compte et voir si elle a augmenté (bien sûr, cela pourrait être dû à l'incrémentation par quelqu'un qui n'utilise pas votre application, mais pas sûr si vous aviez besoin de cela).

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

ou tout simplement vérifier le suiveur compte:

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

Au lieu d'utiliser votre script original alors, vous seriez tout simplement inclure l'image de suivi directement dans un lien et définissez un événement onclick qui, si vous cliquez sur , permuterait l'image et commencerait à interroger avec setInterval pour vérifier si le compte suiveur a changé. Ou si vous souhaitez utiliser le widget pour tirer parti de la sensibilisation de l'utilisateur, vous pouvez simplement interroger de toute façon.

+1

droit, qui est une solution je suppose d'avoir un tel mécanisme dans twttr.anywhere bibliothèque, il aspire apparemment de cette manière. – Sinan

+0

Je ne vois pas pourquoi cela devrait être utilisé à la place du rappel. Peut-être que le rappel n'était pas disponible au moment où cette réponse a été écrite? – sricks

1

Vous pouvez utiliser le code ci-dessous. Vous obtiendrez

SUIVEZ!

alerte après avoir cliqué sur le bouton Suivre

<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>