如何在discord.py中设置Discord机器人无默认前缀的自定义活动状态
Discord机器人无前置动词自定义活动状态实现方案
Discord官方公开的常规活动API默认绑定playing/watching/streaming/listening to四类前置动词,你需要的无前置纯自定义文本状态,可通过以下两种路径实现:
方法1:调用自定义状态接口(仅已验证大型机器人可用)
- 如果你运营的是已经通过Discord官方验证、接入服务器数≥100的机器人,可前往开发者后台「Bot」设置页申请自定义状态专属权限,审批通过后调用
POST /users/@me/settings接口,传入custom_status参数即可设置无前置文本状态,参数示例:
{ "custom_status": { "text": "自定义状态文本内容", "emoji_id": null, "emoji_name": "🤖" } }
- 未通过官方验证的小型机器人调用该接口会返回403错误,无法使用该方案。
方法2:使用CUSTOM类型活动(全量机器人可用,兼容性优先)
- 目前discord.js、py-cord等主流开发库都已支持活动类型枚举值
CUSTOM(对应数值为4),无需额外申请权限即可调用,以discord.js v14为例的代码示例:
client.on('ready', () => { client.user.setActivity({ name: "你要展示的自定义文本", type: 4 // 对应CUSTOM活动类型 }); });
- 注意:该方案设置的状态在桌面端、移动端Discord客户端均可正常无前置显示,网页端偶尔会出现显示异常问题。
内容的提问来源于stack exchange,提问作者Cody Barber
相关产品推荐
相关产品推荐

