You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用node-twitter获取最新5条推文并定时检测新增推文?

解决方案:基于node-twitter实现定时检测并输出新增推文

嘿,我来帮你搞定这几个需求!基于你现有的代码,咱们可以一步步修改来实现目标,下面是完整的实现思路和代码:

核心思路

  1. 获取最新5条推文:通过API的count参数指定返回数量;
  2. 定时检测:用Node.js的setInterval设置30分钟的定时任务;
  3. 避免重复输出:记录已获取推文的最大ID,每次请求时只拉取比这个ID更新的内容(利用Twitter API的since_id参数)。

完整代码实现

var Twitter = require('twitter');

// 初始化Twitter客户端(记得填写你的密钥)
var client = new Twitter({
  consumer_key: '你的consumer_key',
  consumer_secret: '你的consumer_secret',
  access_token_key: '你的access_token_key',
  access_token_secret: '你的access_token_secret'
});

// 保存最后获取到的推文ID,用来过滤旧内容
let lastTweetId = null;
// 目标账号
const targetScreenName = 'nodejs';

// 定义获取并处理推文的函数
function fetchNewTweets() {
  // 构造请求参数:如果有lastTweetId,就只拉取比它新的内容,否则拉取最新5条
  const params = {
    screen_name: targetScreenName,
    count: 5,
    ...(lastTweetId && { since_id: lastTweetId })
  };

  client.get('statuses/user_timeline', params, function(error, tweets, response) {
    if (error) {
      console.error('获取推文出错:', error);
      return;
    }

    // 如果有新推文
    if (tweets.length > 0) {
      // 更新lastTweetId为最新推文的ID(推文数组是按时间从新到旧排序的,所以取第一个的id_str)
      lastTweetId = tweets[0].id_str;
      
      console.log('=== 检测到新推文 ===');
      // 遍历输出每条新推文的关键信息(你可以根据需求调整输出内容)
      tweets.forEach(tweet => {
        console.log(`发布时间:${tweet.created_at}`);
        console.log(`内容:${tweet.text}`);
        console.log('------------------------');
      });
    } else {
      console.log('暂无新推文');
    }
  });
}

// 首次加载时先获取一次最新5条
fetchNewTweets();

// 设置定时任务,每30分钟执行一次(30*60*1000毫秒)
setInterval(fetchNewTweets, 30 * 60 * 1000);

代码说明

  • lastTweetId变量:用来存储已获取过的最新推文ID,每次请求时通过since_id参数告诉Twitter API只返回比这个ID更新的推文,从根源避免重复;
  • fetchNewTweets函数:封装了请求和处理逻辑,既可以在初始化时调用,也能被定时任务重复调用;
  • 输出内容自定义:你可以根据需求修改tweets.forEach里的输出内容,比如只输出推文文本,或者加上作者信息等;
  • 错误处理:添加了简单的错误日志,方便排查请求失败的问题。

内容的提问来源于stack exchange,提问作者user8209141

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:17:33