使用twit库调用Twitter API报错:端点访问权限受限
解决Twitter API权限受限问题:获取指定话题标签推文
问题根源
你遇到的错误是因为使用了Twitter API v1.1的search/tweets端点,当前免费开发者权限已不再支持该端点,仅开放部分API v2端点和有限的v1.1端点(如媒体上传、OAuth)。
可行解决方案
方案1:切换到Twitter API v2(免费可用)
Twitter API v2的搜索端点(tweets/search/recent)对免费用户开放,你需要替换原有的twit库为支持API v2的库(比如twitter-api-v2),以下是修改后的完整代码:
- 安装依赖
npm install twitter-api-v2 xlsx
- 替换后的代码
const { TwitterApi } = require('twitter-api-v2'); const XLSX = require('xlsx'); // 替换为你的Twitter API凭据 const client = new TwitterApi({ appKey: 'YOUR_CONSUMER_KEY', appSecret: 'YOUR_CONSUMER_SECRET', accessToken: 'YOUR_ACCESS_TOKEN', accessSecret: 'YOUR_ACCESS_TOKEN_SECRET', }); // 搜索参数 const hashtag = '#Example'; const maxResults = 100; // 免费用户最多可获取100条最近推文 // 使用API v2搜索最近推文 client.v2.search(`#${hashtag.replace('#', '')}`, { max_results: maxResults }) .then(async (result) => { // 提取推文链接 const tweetLinks = result.data.map(tweet => `https://twitter.com/${tweet.author_id}/status/${tweet.id}` ); // 生成Excel文件 const ws = XLSX.utils.aoa_to_sheet([tweetLinks]); const wb = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(wb, ws, 'Tweet Links'); XLSX.writeFile(wb, 'tweetLinks.xlsx'); console.log('Excel文件已生成,包含推文链接。'); }) .catch((err) => { console.error('错误:', err); });
方案2:升级API访问权限(付费)
如果你坚持使用Twitter API v1.1的search/tweets端点,需要在Twitter开发者平台升级到付费的API产品(如Basic或Pro tier),升级后即可恢复对该端点的访问权限。但此方案需要支付订阅费用,仅推荐对v1.1有强需求的场景。
注意事项
- API v2的
search/recent端点仅能获取最近7天内的推文,免费用户最多每次请求返回100条; - 确保你的API凭据拥有API v2的访问权限(默认新创建的开发者项目都已开通);
- 若需要获取更早的推文,需升级到付费的API tier并使用
search/all端点。
内容的提问来源于stack exchange,提问作者Akcrazytech 1
相关产品推荐
相关产品推荐

