我正在将我的机器人从discord.py迁移到nextcord,并将帮助命令更改为斜杠命令,但它一直向我显示这个错误:
nextcord.errors.HTTPException: 400个坏请求(错误代码: 50035):无效表单正文
它说这个错误是由网络中超过2000个字符造成的。
完全错误:
Ignoring exception in on_connect
Traceback (most recent call last):
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/nextcord/client.py", line 415, in _run_event
await coro(*args, **kwargs)
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/nextcord/client.py", line 1894, in on_connect
await self.rollout_application_commands()
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/nextcord/client.py", line 1931, in rollout_application_commands
await self.register_new_application_commands(data=global_payload)
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/nextcord/client.py", line 1855, in register_new_application_commands
await self._connection.register_new_application_commands(data=data, guild_id=None)
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/nextcord/state.py", line 736, in register_new_application_commands
await self.register_application_command(app_cmd, guild_id)
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/nextcord/state.py", line 754, in register_application_command
raw_response = await self.http.upsert_global_command(self.application_id, payload)
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/nextcord/http.py", line 337, in request
raise HTTPException(response, data)
nextcord.errors.HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body代码
@client.slash_command(name="help",description="Help Command!")
async def help(ctx: nextcord.Interaction, *, command: str = nextcord.SlashOption(name="Command",description="The command you want to get help on.")):
embedh = nextcord.Embed(title="Help",description="Help Menu is here!",color=nextcord.Color.green())
embedh.set_footer(text=f'Requested by {ctx.author}',icon_url=ctx.author.avatar.url)
embedh.add_field(name="General", value="`dm` `say` `poll`")
embedh.add_field(name="Fun",value="`avatar` `giveaway` `8ball`",inline=False)
embedh.add_field(name="Events",value="`guessthenumber`", inline=False)
embedh.add_field(name="Image",value="`wanted`")
embedh.add_field(name="Moderation",value="`ban` `unban` `kick` `mute` `warn` `purge` `wakeup` `makerole` `slowmode` `role` `lock` `unlock` `nickname`",inline=False)
embedh.add_field(name="Utility", value="`ping` `help` `prefix` `setprefix` `serverinfo` `feedback` `credits` `support` `website` `guild`")
await ctx.response.send(embed=embedh)信息
JSON错误代码(我从这里获得):50035
艾德:复裂
模块:下弦
如何解决此错误?
发布于 2022-03-08 16:33:20
解释
来自不和谐的开发文档:
CHAT_INPUT命令名和命令选项名称必须匹配以下regex
^[\w-]{1,32}$
“regex”基本上是指:
如果使用的任何字母都有小写变体,则必须使用
在这种情况下,您的选项名,'Command'有一个大写的'C',这是不允许的。
注:名称的长度也必须小于或等于32。
参考文献
https://stackoverflow.com/questions/71367526
复制相似问题