Я делаю бота для разногласий и пытаюсь использовать контекстные команды / меню. это мой код:
import discord
from discord.ext import commands
from dotenv import load_dotenv
import requests
load_dotenv()
url = "https://discord.com/api/v10/applications/ID/commands"
TOKEN = "TOKEN"
# This is an example CHAT_INPUT or Slash Command, with a type of 1
json = {
"name": "ping",
"type": 1,
"description": "test lmao",
"options": [
{
"name": "test",
"description": "test",
"type": 3,
"required": True,
}
]
}
# For authorization, you can use either your bot token
headers = {
"Authorization": "Bot TOKEN"
}
r = requests.post(url, headers=headers, json=json)
bot = commands.Bot(command_prefix='/',intents=discord.Intents.all())
@bot.event
async def on_read():
print("Bot is ready!")
@bot.command(pass_context = True)
async def ping(ctx, arg):
await ctx.send("Pong! "+ str(arg))
bot.run(TOKEN)
Команда приложения появляется, но бот не отвечает, и я получаю эту ошибку: discord.app_commands.errors.CommandNotFound: команда приложения «ping» не найдена






Похоже, вы пытаетесь использовать команды с косой чертой, но вы не определяете какие-либо команды приложения (команды с косой чертой), вы определяете текстовую команду.
для команд с косой чертой вы должны использовать пакет app_commands для discord.py. он также обрабатывает регистрацию команд приложения в разногласиях.
https://discordpy.readthedocs.io/en/stable/interactions/api.html#application-commands
@Takeraparterer Подумайте о том, чтобы не использовать сторонний пакет, встроенный способ действительно прост. В этом посте вы просто решили отправлять необработанные API-запросы вместо использования библиотеки, что излишне сложно. Вам не нужны эти данные JSON, и вам не нужно отправлять какие-либо запросы API. Discord.py сделает все это за вас.
@stijndcl как? документы сбивают меня с толку. не могли бы вы привести простой пример?
NVM я решил это
спасибо, но я думаю, что буду использовать более простой сторонний пакет :)