Перейти к содержимому

Как отправить сообщение в лс discord py

  • автор:

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.отправить(‘Спс за джоин на сервер!’) .

ChessPro's user avatar

Как говорит документация, это можно сделать через client.fetch_user() . Он возвращает объект discord.User, а потом этому пользователю можно отправлять сообщения. Как пример:

Вот код с подробным объяснением.

Итоги

И так, теперь мы сделали так, что при заходе мы берем пользователя, а дальше уже отправляем ему в личные сообщения случайное сообщение. Надеюсь, я вам помог! Удачного вечера)

Скиншот

Waredness.'s user avatar

Все очень просто. Просто возьмите вашего участника и введите member.send(‘Ку! Спс за джоин на сервер!’) .

Ma3rX's user avatar

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.5.12.43428

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

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

fixator10

В контексте команд — рекомендуется для таких целей использовать конвертеры:

Вне контекста команд — bot.get_user / bot.fetch_user

Разница между get_ и fetch_ , в том, что get-методы достают объекты из кэша бота (пользователя в кэше может не быть если нет общих серверов, или недостаточно intent’ов), а fetch-методы получают объекты запросом из API, что при большом кол-ве запросов может сказаться негативно на задержке запросов (ratelimit)

Как отправить сообщение в лс в дискорде при заходе на сервер?

Он отправляет сообщение о заходе на сервер. Мне бы хотелось, чтобы он отправлял в личные сообщения тоже самое. Т. е. что-то по типу member.отправить(‘Спс за джоин на сервер!’) .

Ответы (3 шт):

Все очень просто. Просто возьмите вашего участника и введите member.send(‘Ку! Спс за джоин на сервер!’) .

Как говорит документация, это можно сделать через client.fetch_user() . Он возвращает объект discord.User, а потом этому пользователю можно отправлять сообщения. Как пример:

Вот код с подробным объяснением.

Итоги

И так, теперь мы сделали так, что при заходе мы берем пользователя, а дальше уже отправляем ему в личные сообщения случайное сообщение. Надеюсь, я вам помог! Удачного вечера)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *