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

使用Python访问Discord服务器频道提取指定关键词消息的方案咨询

无Bot权限下提取Discord频道消息的可行方案
  • 首先明确前提:OAuth2方案确实无法实现该需求,Discord当前未向第三方应用开放读取用户所在服务器频道消息的OAuth授权 scope,此前Stack Overflow的相关描述是准确的。
  • 可行方案1:个人用户令牌调用官方API
    作为已加入目标服务器的注册用户,你可以获取自己的账号访问令牌,直接调用Discord用户侧API拉取消息:
    • 令牌获取方式:打开Discord网页端,按F12打开开发者工具,在「网络」面板中筛选任意发送给Discord域名的请求,复制请求头中Authorization字段的值即为你的个人用户令牌
    • 调用方式:请求/channels/{channel.id}/messages接口,请求头携带上述Authorization值,即可拉取你有权限查看的频道历史消息,拉取后可在本地过滤包含指定关键词的内容
      注意:使用个人用户令牌批量调用API属于Discord服务条款禁止的「自机器人」行为,一旦被平台检测到会直接封禁账号,仅建议用于极小量级的测试场景
  • 可行方案2:本地客户端自动化采集
    不调用官方API,通过桌面自动化工具、浏览器脚本等方式读取你本地运行的Discord客户端/网页端的界面内容,匹配筛选关键词:
    • 该方案不会触发API侧的风险检测,账号封禁风险极低
    • 缺陷是采集效率低,无法实现高频率、大范围的消息拉取,仅适合低频的小规模采集需求
/guilds/{guild.id}/channels 接口工作逻辑与使用方法
  • 核心功能:该接口用于获取指定Discord服务器(即guild)下,你当前使用的身份(用户/Bot)有权限访问的所有频道列表,返回结果包含文字频道、语音频道、公告频道、频道分类等所有类型的频道对象
  • 权限要求:
    • 若使用Bot令牌调用,需要该Bot已加入目标服务器,且拥有「查看频道」的全局权限
    • 若使用个人用户令牌调用,需要你本人为目标服务器的成员,且对应频道对你开放查看权限
  • 调用方法:
    • 请求方法为GET
    • 路径参数{guild.id}替换为目标服务器的数字ID,可在Discord开发者模式下右键服务器名称复制获取
    • 请求头必须携带Authorization字段,Bot令牌格式为Bot 你的Bot令牌值,个人用户令牌直接填写获取到的令牌值即可
    • 可选查询参数:可添加type参数过滤返回的频道类型,比如传0仅返回文字频道,传2仅返回语音频道
  • 返回结果:返回一个JSON数组,每个元素为单个频道的结构化数据,包含频道ID、名称、类型、所属分类ID、权限配置等字段,你可以从返回结果中提取目标频道的ID,用于后续的消息拉取接口调用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:15:04