我使用了这个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 说明:错误的请求:未指定消息标识符
答案 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"
}
}