是否有Twitter的“关注按钮”小部件的回调选项

时间:2010-11-30 00:09:40

标签: javascript twitter

我正在使用this在我的Twitter网络应用上创建Twitter关注按钮。实施就像这样简单:

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

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

</script>

当您将该代码放入html文档时,您会在iframe中的span元素中获得此按钮:

alt text

点击“关注”后,你会得到这个(或类似的事情,说你正在关注@someone):

alt text

然而,在使用此按钮后,我无法将任何信息返回到我的应用程序,(因为这是在iframe中呈现的,并且由于javascript的同源策略,我无法访问该iframe的内容) ,有这个小部件提供的方法,当用户开始跟随某人使用它时通知我的应用程序吗?

感谢。

3 个答案:

答案 0 :(得分:8)

你可以。这是我的代码:

<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 :(得分:1)

您可以尝试使用JSONP来克服跨域限制。

而不是警告,如下所示(仅显示如何获取可能相关的数据 - 关注者ID列表或关注者总数),您可以设置变量以检查最后一次计数并查看如果它已经增加(当然,这可能是由于某人没有使用你的应用程序而增加,但不确定你是否需要)。

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

或者只是查看关注者数量:

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

不是使用原始脚本,而是直接在链接中包含跟随图像并设置onclick事件,如果单击该事件,将交换图像并开始使用setInterval进行轮询以查看如果追随者数量发生变化或者,如果您想使用窗口小部件来利用其用户意识,您仍然可以进行轮询。

答案 2 :(得分:1)

您可以使用以下代码。你会得到

  

请!

单击跟随按钮后

警告

<html>
<a href=http://twitter.com/directdialogs class="twitter-follow-button"
data-show-count="true">Follow@directdialogs</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>