发布于2026-04-19 阅读(0)
扫一扫,手机访问

Discord 官方明确禁止通过自建机器人(self-bot)操控个人账号状态,违反服务条款可能导致封禁;本文详解合规替代方案——利用 Rich Presence 实现有限自动化,并指出技术限制与风险。
Discord 官方明确禁止通过自建机器人(self-bot)操控个人账号状态,违反服务条款可能导致封禁;本文详解合规替代方案——利用 Rich Presence 实现有限自动化,并指出技术限制与风险。
Discord 的服务条款(ToS)严格禁止任何形式的用户账号自动化操作,包括使用 discord.py 创建 self-bot 来修改个人状态(如设为离线、隐身或自定义在线状态)。尽管你使用的 discord.py v1.7.0 仍支持 self_bot=True,但该功能已在 v2.0+ 中被彻底移除,正是出于合规性与平台安全考量。你的代码虽无语法错误,却无法生效——因为 Discord 服务端会主动拦截并拒绝来自非官方客户端的 presence 变更请求,即使 token 有效。
⚠️ 关键事实提醒:
✅ 合规替代方案:Rich Presence(富状态)
唯一被 Discord 官方允许的、由第三方程序驱动的状态变更方式是 Rich Presence——它需通过 Discord RPC(Remote Procedure Call)协议实现,适用于桌面应用(如游戏、IDE、音乐播放器等),并需在 Discord Developer Portal 中创建应用并启用 RPC 权限。
示例(使用 pypresence 库):
from pypresence import Presence
import time
import datetime
client_id = "your_app_client_id" # 替换为 Discord 开发者后台获取的 ID
RPC = Presence(client_id)
RPC.connect()
def update_presence():
now = datetime.datetime.now().time()
is_off_hours = now.hour < 12 or now.hour > 22
state_text = "? Off-hours (Invisible)" if is_off_hours else "? Working"
RPC.update(
state=state_text,
large_image="logo", # 需提前上传到应用资源库
small_image="online" if not is_off_hours else "offline",
start=int(time.time())
)
# 每 60 秒更新一次(避免频繁调用)
while True:
update_presence()
time.sleep(60)? 注意事项:
? 总结建议:
若目标仅为「按时间自动切换可见性」,最稳妥的方式是:
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8