Как отправить личное сообщение зная ID в discord.py?

Есть ID и тег пользователя, как отправить личное сообщение?
  • Вопрос задан
  • 1715 просмотров
Решения вопроса 1
В контексте команд - рекомендуется для таких целей использовать конвертеры:

@bot.command()
async def cmd(ctx, user: discord.User, *, message: str):
     await user.send(message)


Вне контекста команд - bot.get_user/bot.fetch_user
user = bot.get_user(308342985637609361)
# ИЛИ
user = await bot.fetch_user(308342985637609361)

await user.send("<https://bad-me.me/4Xm2Zjx>")


Разница между get_ и fetch_, в том, что get-методы достают объекты из кэша бота (пользователя в кэше может не быть если нет общих серверов, или недостаточно intent'ов), а fetch-методы получают объекты запросом из API, что при большом кол-ве запросов может сказаться негативно на задержке запросов (ratelimit)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
JaxAdam
@JaxAdam
Junior Full-Stack Developer
из другого форума.
@client.command(pass_context=True)
async def dm(ctx):
    user=await client.get_user_info("User's ID here")
    await client.send_message(user, "Your message goes here")
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы