使用requests调用Discord接口发送消息无法@指定用户问题求助
Discord接口@用户不生效解决方法
原因
Discord 消息接口不识别纯文本格式的@用户名,必须使用指定的ID占位符格式,同时需要配置允许提及的权限参数,才能触发实际的@提醒效果。
具体修改步骤
- 获取目标用户的数字ID:在已经开启的Discord开发者模式下,右键点击目标好友,选择「复制用户ID」即可得到一串纯数字的用户唯一标识。
- 修改content字段中的@格式:将原来的
@myfriends替换为<@你刚复制的用户ID>,例如用户ID为1234567890就写成<@1234567890>。 - 新增
allowed_mentions参数到请求payload中,显式声明允许提及用户,避免Discord接口自动屏蔽@效果。
修改后完整代码示例
import requests header = { 'authorization': '你的authorization内容' } payload = { 'content': ".rob <@替换为目标用户ID> discord ", # 新增允许提及配置 'allowed_mentions': { 'parse': ['users'] } } rob = requests.post("你的Discord消息接口地址", data=payload, headers=header)
额外注意事项
- 直接使用个人账号的authorization调用Discord接口属于违反Discord服务条款的行为,高频调用很容易触发账号封禁,建议后续改用官方开发者平台注册的Bot账号的token进行请求。
- 该方法对@角色、@所有人同样生效,@角色使用
<@&角色ID>格式,同时在allowed_mentions的parse数组中加roles即可;@所有人使用@everyone,同时加everyone到parse数组。
内容的提问来源于stack exchange,提问作者Doyle Musselman
相关产品推荐
相关产品推荐

