You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过Twitter API在Node.js中获取多个指定账号的推文?

如何在Node.js中获取多个指定账号的推文

嘿,我懂你遇到的困扰了!Twitter(现在叫X)的搜索语法里,用逗号分隔多个账号确实不生效,得用大写的OR运算符来拼接多个from:子句才行。下面我给你一步步讲清楚怎么实现:

第一步:纠正搜索查询格式

首先要搞对搜索语法:要获取多个账号的推文,你需要把每个from:条件用OR连接,而且OR必须是大写的(Twitter搜索对运算符大小写敏感)。比如:

from:jack OR from:elonmusk OR from:Twitter

这个查询会返回这三个账号的所有公开推文(受API权限限制,免费版通常只能获取最近7天的内容,高级API才能拿到更早的)。

第二步:Node.js代码实现示例

我推荐用twitter-api-v2这个库,它是Twitter API v2的官方推荐客户端,比旧的v1.1库更简洁好用。

1. 安装依赖

先在项目里安装这个包:

npm install twitter-api-v2

2. 编写完整代码

以下是可直接参考的示例代码,包含客户端初始化、查询构建、推文获取的全流程:

const { TwitterApi } = require('twitter-api-v2');

// 替换成你自己的API凭证(从X开发者平台的项目中获取)
const client = new TwitterApi({
  appKey: 'YOUR_APP_KEY',
  appSecret: 'YOUR_APP_SECRET',
  accessToken: 'YOUR_ACCESS_TOKEN',
  accessSecret: 'YOUR_ACCESS_SECRET',
});

// 定义你要抓取的目标账号列表
const targetUsernames = ['jack', 'elonmusk', 'Twitter'];

// 自动拼接成符合要求的搜索查询
const searchQuery = targetUsernames.map(username => `from:${username}`).join(' OR ');

async function fetchTargetTweets() {
  try {
    // 获取推文(这里设置最多返回20条,可调整max_results参数)
    const result = await client.v2.search(searchQuery, {
      max_results: 20,
      tweet: {
        fields: ['created_at', 'text', 'author_id'], // 指定需要返回的字段
      },
    });

    // 输出结果
    console.log(`共找到 ${result.meta.result_count} 条推文:`);
    result.data.forEach(tweet => {
      console.log(`[${tweet.created_at}] ${tweet.text}`);
    });
  } catch (error) {
    console.error('获取推文失败:', error);
  }
}

// 执行抓取函数
fetchTargetTweets();

关键注意事项

  • API权限:确保你的开发者账号有访问Twitter API v2的权限,并且凭证信息填写正确(appKey、appSecret等可在X开发者平台的项目设置里找到)。
  • 搜索限制:免费版API仅支持获取最近7天的推文,若需要更早的内容,需订阅高级搜索API服务。
  • 运算符大小写:必须用大写的OR,小写的or会被当成普通关键词,无法起到多条件拼接的作用。

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

火山引擎 最新活动