Почему bot.get_channel() создает NoneType?Python

Программы на Python
Ответить
Anonymous
 Почему bot.get_channel() создает NoneType?

Сообщение Anonymous »

Я создаю бота Discord для обработки команд объявлений. Когда команда используется, я хочу, чтобы бот отправил сообщение в определенный канал и отправил сообщение обратно пользователю, чтобы показать, что команда была отправлена.
Однако я не могу отправить сообщение на канал. Я попробовал этот код:

Код: Выделить всё

import discord
import os
import random
import asyncio

testing_servers = # list of server ids
intents = discord.Intents().all()
bot = discord.Bot(intents=intents)

@bot.slash_command(guild_ids=testing_servers, name="announce", description="Make server announcements!")
async def announce(ctx, title, text, channel_id,anonymous=None):
#response embed
print(channel_id)
#announcement embed
embed_announce = discord.Embed(
colour = discord.Colour.blue(),
title=str(title),
description = text
)
await bot.get_channel(channel_id).send(embed = embed_announce)
Но прежде чем даже попытаться отправить другое сообщение обратно пользователю, я получаю сообщение об ошибке AttributeError: у объекта 'NoneType' нет атрибута 'send'.
Я делаю вывод, что bot.get_channel(channel_id) имеет значение None. Но почему? Как мне выбрать правильный канал для отправки сообщения?

Подробнее здесь: https://stackoverflow.com/questions/715 ... e-nonetype
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»