PHP电报漫游器:错误的请求:找不到编辑消息

时间:2020-05-01 18:38:43

标签: php bots telegram

我使用了这个GitHub 软件包来构建我的Telegram机器人。我想编辑我从机器人发送的消息。我感到困惑,因为我认为一切都正确!!

  $content = array('chat_id' => $chat_id, 'text' => "
  some text
  " );
// sending message, it will return Telegram JSON's reply, contains message_id which is used further to //edit sent message (https://core.telegram.org/bots/api#message)
  $newmess=  $telegram->sendMessage($content);

// in order to edit the message we should provide the //(https://core.telegram.org/bots/api#editmessagetext) keys
// message_id is achieved by the last message sent ($newmess the message_id key)
  $content = array('chat_id' => $newmess['chat']['id'],'message_id'=>$newmess['message_id'],'text' => "


  some text 2
  ");

  $telegram->editMessageText($content);

但是当我看到日志时,$ newmess ['message_id']为空!根据Telegram文档,如果消息发送成功,则响应包含诸如message_id之类的键! (https://core.telegram.org/bots/api#message

这是日志:

好:错误 错误代码:400 说明:错误的请求:未指定消息标识符

2 个答案:

答案 0 :(得分:0)

已解决:$ newmess ['result'] ['message_id'] 必须输入结果键。

答案 1 :(得分:0)

当用户在一段时间后单击嵌入式键盘按钮时,也可能会出现 找不到编辑消息 错误。在这种情况下,由于删除了消息,因此会发生错误。 Telegram可以随时从服务器中删除您的消息(与Bot API相关)。在这种情况下,您会收到格式错误的回复。

{
   "update_id":23******9,
   "callback_query":{
      "id":"14*****11",
      "from":{
         "id":34*****0,
         "is_bot":false,
         "first_name":"*****",
         "last_name":"*****",
         "username":"*****",
         "language_code":"uk"
      },
      "message":{
         "message_id":74*****77,
         "chat":{
            "id":34*****10,
            "first_name":"*****",
            "last_name":"*****",
            "username":"*****",
            "type":"private"
         },
         "date":0
      },
      "chat_instance":"-26***736",
      "data":"con***920"
   }
}