调用Discord API创建定时事件时出现Bad Request错误,请求排查问题原因
排查Discord定时事件创建400 Bad Request错误
你的GET请求都能正常工作,说明Bot的Token、权限以及API版本都没问题,问题大概率出在POST请求的Body参数里,我帮你梳理几个核心问题:
1. 字段名大小写错误(最可能的触发原因)
你的请求Body里写的是entity_Type,但Discord API对字段名大小写是敏感的,要求这个字段必须是全小写的entity_type。这个拼写错误会直接导致服务器无法正确识别字段,从而返回400 Bad Request。
修正后的请求Body关键字段应该是:
{"channel_id": [CHANNEL ID], "entity_metadata": null, "name": "Test", "privacy_level": 2, "scheduled_start_time": "2022-09-10T12:42:12Z", "scheduled_end_time": null, "description": null, "entity_type": 2, "image": null}
2. 时间格式的时区缺失问题
你填写的scheduled_start_time是"2022-09-10T12:42:12",缺少时区标识。Discord API要求使用ISO 8601格式的UTC时间,建议加上Z后缀明确表示UTC时区,比如"2022-09-10T12:42:12Z"。如果不加时区,部分场景下服务器可能会解析失败,也可能触发400错误。
3. 额外验证项
- 确认
channel_id对应的是有效的语音频道ID,因为entity_type: 2对应的是语音频道事件,不能使用文本频道ID; - 虽然
scheduled_end_time允许设为null,但如果你的事件有明确结束时间,建议补充完整,避免潜在的验证问题。
你可以先优先修正字段名的问题,再重新测试请求,应该就能解决这个400错误了。
内容的提问来源于stack exchange,提问作者sasha
相关产品推荐
相关产品推荐

