【问题标题】:Twitter API: Count number of Tweets since 0:00am this morning?Twitter API:计算今天早上 0:00 以来的推文数量?
【发布时间】:2012-11-05 08:09:25
【问题描述】:

是否有 API 可以计算特定用户从今天早上 0:00 开始的推文数量?我已经尝试了以下 Javascript,但我能得到的最接近的是该用户所有时间的推文总数。

$.getJSON("http://api.twitter.com/1/statuses/user_timeline/BarackObama.json?count=1&include_rts=1&callback=?", function(data) {
     $("#twitter").html(data[0].user.statuses_count);
});

【问题讨论】:

  • 你关心时区吗?
  • 是的,它必须是今天发布的推文数量。因此,理想情况下,这应该是从午夜开始。但我想从早上 6:00 开始也是合适的。

标签: javascript twitter numbers posts tweets


【解决方案1】:

您可以下载用户时间线,直到您收到“昨天”(即凌晨 0:00 之前)发布的推文。一旦你得到它,你只需要计算“今天”(即凌晨 0:00 之后)发布的推文。

EDIT 1:获取它的伪 JavaScript 代码

var howManyTweetsWerePostedToday = function () {
    var timeline = downloadTimeline()
    var lastTweet = timeline[timeline.length-1]
    var now = new Date()
    var today = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDay(), 0, 0, 0, 0) // Limit between today and yesterday
    var lastTweetDate = new Date(lastTweet["created_at"])

    while (lastTweetDate.getTime() >= today.getTime()) {
        var lastTweetID = lastTweet["id_str"]
        var earlierTweetsTimeline = downloadTimeline(max_id = lastTweetID)
        timeline = timeline.concat(earlierTweetsTimeline.shift())
        lastTweet = timeline[timeline.length-1]
        lastTweetDate = new Date(lastTweet["created_at"])
    }

    return getNumberOfTweetsThatWerePostedTodayInTheTimeline(timeline)
}();

使用downloadTimeline(),这是一个调用GET statuses/user_timelineTwitter API 端点以获取时间线的函数。有关端点的详细信息,请参阅 https://dev.twitter.com/docs/api/1/get/statuses/user_timeline,尤其是 max_id,它是结果中的最高推文 ID。

created_at 是发布推文的日期。 id_str 是 String 形式的推文 ID。有关推文的更多详细信息,请参阅https://dev.twitter.com/docs/platform-objects/tweets

【讨论】:

  • 太好了,谢谢 air-dex。当时间线到达“昨天”时,如何停止下载时间线?我发现 Twitter 文档真的无法访问。你能为我指出正确的方向吗?这是对我目前使用的js脚本的修改吗?
  • 参见编辑 1。对于 JS 代码,我尽我所能用我的一点 JavaScript 知识(我对 jQuery 一无所知)。
猜你喜欢
  • 2021-07-24
  • 1970-01-01
  • 2018-11-15
  • 1970-01-01
  • 1970-01-01
  • 2015-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多