Как отправить сообщение от имени своего бота в определенный канал . DISNAKE
Не могу разобраться как это сделать
Ответы (3 шт):
Автор решения: Senior Pomidor
→ Ссылка
Чтобы отправить сообщение от имени своего бота в определенный канал Discord, нужно:
- Иметь приложение Discord бота, которое было создано и настроено в Discord Developer Portal.
- Иметь токен бота, который может быть использован для аутентификации бота и доступа к API Discord.
- Использовать библиотеку Discord API для создания скрипта, который будет отправлять сообщение в определенный канал.
import discord
client = discord.Client()
@client.event
async def on_ready():
# Получаем идентификатор канала по его имени
channel = discord.utils.get(client.get_all_channels(), name='channel_name')
# Отправляем сообщение в канал
await client.send_message(channel, 'Hello, this is a message from my bot!')
client.run('BOT_TOKEN')
В этом коде используем библиотеку discord.py для создания экземпляра клиента Discord. Мы используем декоратор on_ready для определения функции, которая будет вызвана при готовности клиента.
Не забудьте заменить BOT_TOKEN на токен вашего бота и 'channel_name' на имя канала, где вы хотите отправить сообщение.
Автор решения: Janone
→ Ссылка
Подключить модуль для поиска
from disnake import utils
Сначала тебе нужно получить этот самый канал. Для получения канала нужен его ID или хотя-бы название.
Если есть ID и есть сервер, в котором есть канал:
channel = utils.get(*сервер*.channels, id=*ID*)
Если есть название канала и сервер, в котором есть канал
channel = utils.get(*сервер*.channels, name=*название*)
Если нет сервера, поиск по всем каналам всех серверов
channel = utils.get(client.get_all_channels(), id=*ID*)
А дальше просто отправить сообщение
channel.send('Сообщение')
Автор решения: Sannchello
→ Ссылка
@bot.command(name="send_message")
async def send_message(ctx, chat_id : int, *, message : str):
channel = bot.get_channel(chat_id)
await channel.send(message)
Я сделал это так