Discord.py Отправить личное сообщение пользователю с индивидуальным идентификатором
Я использую discord.py и хочу отправить настраиваемый DM настраиваемому пользователю с идентификатором моего желания. Я буквально перепробовал все способы и варианты, которые у нас были как в Stack Overflow, так и в discord.py, однако ни один из них не работал. Результат, который я получаю, всегда равен «Нет». Какие-либо предложения?
1 ответ
Убедитесь, что вы используете ветку перезаписи discord.py, так как это самая последняя версия discord.py. Все три способа, которыми вы пытаетесь отправить прямое сообщение, не работают с discord.py-rewrite. Если вы используете ветку перезаписи, вы можете обновить любой из этих трех методов:
В № 1 проблема заключается в том, что метод Client.get_user_info() был изменен на Client.fetch_user() , что должно вернуть вам правильного пользователя.
В № 2 проблема заключается в том, что метод Client.send_message() был изменен на channel.send()
Способ обработки DM в # 3 в настоящее время не используется, хотя он должен оставаться действующим. Я рекомендую вам просто member.send() отправить прямое сообщение пользователю.
Еще одна важная вещь заключается в том, что бот не может отправлять DM пользователям, которые не разделяют гильдии с ботом, поэтому убедитесь, что пользователь находится в гильдии, в которой работает бот.
Как отправить сообщение в лс в дискорде при заходе на сервер?
Он отправляет сообщение о заходе на сервер. Мне бы хотелось, чтобы он отправлял в личные сообщения тоже самое. Т. е. что-то по типу member.отправить(‘Спс за джоин на сервер!’) .
![]()
Как говорит документация, это можно сделать через client.fetch_user() . Он возвращает объект discord.User, а потом этому пользователю можно отправлять сообщения. Как пример:
Вот код с подробным объяснением.
Итоги
И так, теперь мы сделали так, что при заходе мы берем пользователя, а дальше уже отправляем ему в личные сообщения случайное сообщение. Надеюсь, я вам помог! Удачного вечера)

![]()
Все очень просто. Просто возьмите вашего участника и введите member.send(‘Ку! Спс за джоин на сервер!’) .
![]()
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.5.12.43428
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как отправить личное сообщение зная ID в discord.py?

В контексте команд — рекомендуется для таких целей использовать конвертеры:
Вне контекста команд — bot.get_user / bot.fetch_user
Разница между get_ и fetch_ , в том, что get-методы достают объекты из кэша бота (пользователя в кэше может не быть если нет общих серверов, или недостаточно intent’ов), а fetch-методы получают объекты запросом из API, что при большом кол-ве запросов может сказаться негативно на задержке запросов (ratelimit)
Как отправить сообщение в лс в дискорде при заходе на сервер?
Он отправляет сообщение о заходе на сервер. Мне бы хотелось, чтобы он отправлял в личные сообщения тоже самое. Т. е. что-то по типу member.отправить(‘Спс за джоин на сервер!’) .
Ответы (3 шт):
Все очень просто. Просто возьмите вашего участника и введите member.send(‘Ку! Спс за джоин на сервер!’) .
Как говорит документация, это можно сделать через client.fetch_user() . Он возвращает объект discord.User, а потом этому пользователю можно отправлять сообщения. Как пример:
Вот код с подробным объяснением.
Итоги
И так, теперь мы сделали так, что при заходе мы берем пользователя, а дальше уже отправляем ему в личные сообщения случайное сообщение. Надеюсь, я вам помог! Удачного вечера)