Rumble Chat机器人消息发送500错误排查方案求助
Rumble聊天机器人发送消息时500错误排查思路
我是编程新手,正在开发一款Rumble聊天机器人,目前脚本可监听Chat并识别!merch这类命令,但向Chat发送命令回复时遭遇瓶颈,返回500内部服务器错误。
收到的服务器响应(标识符已用***隐藏):
Received event: {'request_id': '8+wOEkAWFinfBP3KTtso+XKCbovAN1CL2tlNLThyggU', 'type': 'messages', 'data': {'messages': [{'id': '*******', 'time': '2024-02-23T05:36:47+00:00', 'user_id': '*******', 'text': '!merch', 'blocks': [{'type': 'text.1', 'data': {'text': '!merch'}}]}], 'users': [{'id': '******', 'username': '******', 'link': '/user/*******', 'is_follower': True, 'color': '#f54fd1', 'badges': ['moderator']}], 'channels': [[]]}}
错误响应:
Error sending message: 500 Server Error: Internal Server Error for url: https://web7.rumble.com/chat/api/chat/{chat_id}/stream Response status code: 500 Response content: <html> <head><title>500 Internal Server Error</title></head> <body> <center><h1>500 Internal Server Error</h1></center> <hr><center>nginx</center> </body> </html>
当前使用的payload格式:
payload = { "type": "messages", "messages": [ { "text": [message] } ] }
排查思路:
- 修正Payload的text字段格式:从接收的消息结构能看到,服务器端的
text是字符串类型,而你发送的是数组格式,这大概率是触发错误的原因。修改为字符串格式:payload = { "type": "messages", "messages": [ { "text": message } ] } - 确认请求头配置正确:发送请求时必须携带
Content-Type: application/json,同时要保证身份验证相关的请求头(如Cookie、Authorization)和监听Chat时使用的完全一致,Rumble的Chat API依赖会话状态验证身份。 - 替换URL中的占位符:确保URL里的
{chat_id}已经替换为实际的聊天房间ID,不能保留占位符。可以从监听连接的初始化参数或服务器返回的事件数据中提取正确的Chat ID。 - 对比正常用户的请求结构:用浏览器开发者工具抓取正常用户发送聊天消息的请求,对比你的请求在Payload、请求头、URL结构上的差异,补全缺失的参数或修正格式。
- 检查消息内容合规性:避免发送包含特殊字符、过长文本或者Rumble Chat禁止的内容,这类内容可能导致服务器处理失败。
- 控制请求频率:如果短时间内发送过多请求,可能触发服务器限流机制,尝试增加请求间隔,避免频繁发送消息。
内容的提问来源于stack exchange,提问作者hoovnick7
相关产品推荐
相关产品推荐

