discord python: guild.members devuelve solo bot pero no miembros [duplicado]
tratando de hacer un bot de discordia con Python.
en la interfaz de desarrolladores de discord, en mi panel de bots, "Privileged Gateway Intents" (INTENCIÓN DE LOS MIEMBROS DEL SERVIDOR) está marcado.
El bot está en el servidor (gremio) con autorizaciones de administrador.
for guild in self.discord_client.guilds:
print(f"guild found : {guild}")
print(guild.members)
for member in guild.members:
print(member)
No entiendo por qué bot regresó solo a él, pero ninguno me encontró a mí ni a mi amigo.
regreso
guild found : Testdev
[<Member id=76277237853886878X name='Dev_Bot' discriminator='6271' bot=True nick=None guild=<Guild id=76114559936167936X name='Testdev' shard_id=None chunked=False member_count=3>>]
número de miembros = 3, pero después
for member in list(guild.members):
print(member)
regresar solo
Dev_Bot#6271
Puede usted ayudar ? Gracias
Respuestas
La única respuesta útil que he encontrado está aquí:
Discord Bot solo puede verse a sí mismo y no a otros usuarios en el gremio
Básicamente, dice que debes configurar el intentspara poder ver a los miembros del gremio.
Entonces, en lugar de solo client = discord.Client(), tendrás que hacer:
...
intents = discord.Intents.all()
client = discord.Client(intents=intents)
...
o
intents = discord.Intents.default()
intents.members = True
client = discord.Client(intents=intents)
si solo quieres tener esa intención
https://discordpy.readthedocs.io/en/latest/intents.html
O simplemente, instale la versión 1.4.2 de la biblioteca: pip install -U discord.py==1.4.2