Wie sendet man ( mit einem python bot ) eine dm an einen bestimmten user?
Wie sende ich per DM eine Nachricht mit einem Python bot an einem bestimmten Nutzer also statt message.author.send("A") iergendwie sowas wie message.user#8484.send("A")
2 Antworten
Um den Nutzer (member) erst einmal ermitteln zu können, brauchst du gewisse Rechte. Lies dazu hier.
Sobald du die notwendige Einstellung im Discord-Konto vorgenommen hast, setzt du noch den Intent für deinen Client:
import discord
intents = discord.Intents.default()
intents.members = True
client = discord.Client(intents=intents)
Anschließend kannst du den Nutzer anhand seiner ID suchen und ihm mittels send eine Nachricht schicken.
user = client.get_user(id)
user.send(content="Some message ...")
Lies dazu auch hier:
user = await client.fetch_user(id)
channel = await user.create_dm()
await channel.send(Main.dc_text)
Das Wichtigste ist die ID des Users, den Du kontaktieren möchtest und dass der User einen Server mit Deinem Bot teilt.
Die ID kannst du folgendermaßen herausfinden:
async def on_message(self, message):
if message.author == client.user:
return
print(message.author.id)
Sobald eine Nachricht in einen Server-Textchannel geschickt wird, printet das Programm dessen ID, vorrausgesetzt es ist nicht die des Bots.