Telegram bot 电报机器人得到;错误请求:消息文本为空";

Telegram bot 电报机器人得到;错误请求:消息文本为空";,telegram-bot,Telegram Bot,当我的电报机器人向电报服务器发送sendMessage时,它会收到错误消息: {"ok":false,"error_code":400,"description":"Bad Request: message text is empty"} 问题出现在今天早上,在此之前,我的机器人工作了整整一年,没有出现任何错误。GetUpdates命令和以前一样工作正常。我使用GET HTTP方法发送命令: https://api.telegram.org/bot<MyToken>/sendMes

当我的电报机器人向电报服务器发送sendMessage时,它会收到错误消息:

{"ok":false,"error_code":400,"description":"Bad Request: message text is empty"}
问题出现在今天早上,在此之前,我的机器人工作了整整一年,没有出现任何错误。GetUpdates命令和以前一样工作正常。我使用GET HTTP方法发送命令:

https://api.telegram.org/bot<MyToken>/sendMessage

有人遇到过这种情况吗?

如果问题仍然存在,请尝试修改您的curl请求。为我添加标题
'Content-Type:application/json'
-d'{“chat_id”:12309832,“text”:“any text”}
修复了这个问题

我也遇到了这个错误。 我只使用了“低级”的方法:

对于ASCII文本,这是可以的,但是对于一些非ASCII文本,我得到:

const data = JSON.stringify({
  chat_id: config.telegram.chatId,
  text: 'Привет Мир!'),
});
错误:

400 Bad Request application/json
{"ok":false,"error_code":400,"description":"Bad Request: message text is empty"}
在我的例子中,内容长度是用无效的长度
'content-length':data.length
(对电报无效?…),所以我注释掉了这个标题,现在它适用于
UTF-8

  headers: {
    'Content-Type': 'application/json',
    //'Content-Length': data.length
  }

通过模拟表单发送消息的另一种方法:

curl-s-X POSThttps://api.telegram.org/bot{apitoken}/sendMessage\

-F chat_id='-1234567890'-F text='test message'

对我来说,它只是标题。什么是
-d…
东西?
-d{}
包含JSON格式的数据(如果使用POST)。您可以使用GET并将所有数据放入URL。您的bot处于某种状态,无法发送空消息。不知何故,它不会处理同一URL上的任何其他请求,直到该状态发生更改。您是否正在打印可能为空的列表?就像我在待办事项列表机器人中所做的那样。您可以逐个考虑代码的运行段,直到找到空消息打印段。使用POST请求而不是得到解决,MeTi的问题对我有帮助,而在GET请求中添加头没有,谢谢。
400 Bad Request application/json
{"ok":false,"error_code":400,"description":"Bad Request: message text is empty"}
  headers: {
    'Content-Type': 'application/json',
    //'Content-Length': data.length
  }