如何批量校验Discord用户ID是否在指定服务器并生成提及格式
实现Discord用户服务器归属校验与提及格式转换
核心逻辑
- 获取目标服务器的成员数据
- 循环遍历待校验的用户ID列表,逐一验证是否属于该服务器
- 将校验通过的ID转换为Discord提及格式
<@用户ID>
代码实现(基于discord.py v2.x)
import discord from discord.ext import commands bot = commands.Bot(command_prefix="!", intents=discord.Intents.all()) @bot.event async def on_ready(): # 替换为目标服务器ID target_guild_id = 1827392683 # 替换为待校验的用户ID列表 user_ids = [91287318123, 1282379128, 128923712912] guild = bot.get_guild(target_guild_id) if not guild: print("目标服务器不存在,请检查ID是否正确") return # 预加载服务器成员,减少API调用次数 await guild.fetch_members() valid_mentions = [] # 循环校验每个用户ID for user_id in user_ids: member = guild.get_member(user_id) if member: valid_mentions.append(f"<@{user_id}>") print("校验通过的用户提及:", ", ".join(valid_mentions)) # 替换为你的机器人Token bot.run("YOUR_BOT_TOKEN")
关键注意事项
- 权限配置:机器人需要在目标服务器拥有
服务器成员列表权限,且在Discord开发者后台开启Members Intent,否则无法获取成员数据 - 循环校验逻辑:通过
guild.get_member(user_id)判断用户是否在服务器内,存在则直接拼接提及格式字符串 - 无机器人替代方案:如果没有机器人权限,可在Discord客户端搜索框输入
@用户ID,能显示昵称则说明用户属于该服务器,手动转换格式即可
内容的提问来源于stack exchange,提问作者Ayaka Kamisato
相关产品推荐
相关产品推荐

