我正在使用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元素中获得此按钮:
点击“关注”后,你会得到这个(或类似的事情,说你正在关注@someone):
然而,在使用此按钮后,我无法将任何信息返回到我的应用程序,(因为这是在iframe中呈现的,并且由于javascript的同源策略,我无法访问该iframe的内容) ,有这个小部件提供的方法,当用户开始跟随某人使用它时通知我的应用程序吗?
感谢。
答案 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>