Как отправить сообщение от имени своего бота в определенный канал

Рейтинг: -2Ответов: 3Опубликовано: 25.01.2023

Не могу разобраться как это сделать

Ответы

▲ 1

Подключить модуль для поиска

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('Сообщение')
▲ 0
@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)

Я сделал это так

▲ -1

Чтобы отправить сообщение от имени своего бота в определенный канал 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' на имя канала, где вы хотите отправить сообщение.