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

使用TweetInvi调用Twitter API筛选流遇403错误求解决方案

解决TweetInvi Filtered Stream 403错误问题

核心原因

你遇到的403错误主要来自两个关键点:

  1. API版本弃用:Twitter已彻底弃用v1.1的Filtered Stream端点,当前必须使用v2版本API
  2. 权限/客户端类型错误:v2的Filtered Stream属于应用级端点,需用Bearer Token创建应用客户端,而非用户级的access token客户端

修正后的代码

使用TweetInvi的v2 API模块实现@提及监控,步骤如下:

  1. 确保安装v6及以上版本的TweetInvi(该版本全面支持Twitter API v2)
  2. 用应用级Bearer Token创建客户端,不要使用用户token
  3. 按v2规则语法添加过滤规则后启动流
// 替换为你的应用Bearer Token
var bearerToken = "YOUR_BEARER_TOKEN";
var appClient = new TwitterClient(bearerToken);

// 可选:清理已有规则,避免重复添加导致报错
var existingRules = await appClient.StreamsV2.GetFilteredStreamRulesAsync();
if (existingRules.Any())
{
    await appClient.StreamsV2.DeleteFilteredStreamRulesAsync(existingRules.Select(r => r.Id));
}

// 添加监控@指定账号的规则
var mentionRule = new FilteredStreamRule("@AccountToFilterBy", "track-mentions");
await appClient.StreamsV2.AddFilteredStreamRuleAsync(mentionRule);

// 创建流并监听事件
var stream = appClient.StreamsV2.CreateFilteredStream();
stream.TweetReceived += (sender, eventArgs) =>
{
    // 处理收到的提及推文
    Console.WriteLine($"收到提及:{eventArgs.Tweet.Text}");
};

// 启动持续监听
await stream.StartAsync();

关键注意事项

  • 客户端类型不能混用:用户级客户端(带access token)无法访问v2的Filtered Stream,必须使用Bearer Token创建的应用客户端
  • 规则语法要求:v2过滤规则直接写@AccountToFilterBy即可,无需额外格式;复杂规则可参考Twitter官方规则语法
  • 规则数量限制:基础开发者账号最多可添加5条过滤规则,单条规则最长512字符
  • 版本兼容性:TweetInvi v5及以下版本对v2 API支持不完善,建议升级到最新稳定版

关于破坏性更新

TweetInvi在v6版本确实进行了重大更新,全面切换为支持Twitter API v2,旧版v1.1相关流方法因Twitter端点弃用,现在会返回403错误,这正是你遇到问题的根本原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 13:54:20