guild.members
您可以执行一个命令,使您所有成员都能获得所有成员,然后您可以将其长度发送到烧瓶应用程序。
@client.command()
async def get_members(ctx):
await ctx.message.delete()
#This will get you all the members in your server
for user in list(ctx.guild.members):
print(user)
#You can do whatever you want here
据我所知,将您的机器人信息传递给网站的唯一便捷方法是同时拥有一个机器人的实例(当然,您也可以拨打本机API呼叫,但我不建议这样做)。因此,一旦您启动烧瓶应用程序,您也必须初始化bot的实例。 您的默认情况下,您的bot获取了有关初始化的信息,例如它正在打开的服务器。您应该能够向您的网站提供该信息。 您也可以使用
client.get_...
方法来获取其他信息。
def get_guild_names():
return [guild.name for guild in client.guilds]
然后从您的烧瓶应用程序打电话。
discord.py
库从Discord服务器中检索用户列表。但是,由于Discord的权限和机器人限制,您必须确保启用机器人的意图。
1。启用特权意图在编写Python代码之前,启用机器人设置中的意图:
向Discord Developer Portal go。选择您的bot应用程序。
驱动到
bot>
proivileged网关意见。
如果您尚未安装Members
,请使用以下方式安装:
discord.py
解释:
启用意图:不符合的意图是访问服务器成员数据的意图。
import discord
from discord.ext import commands
# Intents must include members
intents = discord.Intents.default()
intents.members = True
bot = commands.Bot(command_prefix="!", intents=intents)
@bot.event
async def on_ready():
print(f'Logged in as {bot.user}')
guild = discord.utils.get(bot.guilds, name="YOUR_SERVER_NAME") # Or use guild ID
if guild:
members = guild.members
print("Server Members:")
for member in members:
print(member.name, "-", member.id) # Prints user names and IDs
@bot.command()
async def list_members(ctx):
"""Command to list all members in the server."""
guild = ctx.guild
members = "\n".join([member.name for member in guild.members])
await ctx.send(f"Members:\n{members}")
# Run the bot with your token
bot.run("YOUR_BOT_TOKEN")
检索服务器中的所有用户。
members
将成员打印到控制台。
guild.members
命令在消息中发送用户列表。