Собеседник исправил своё сообщение. Если сообщение исправили с телефона номера канала, приходит то же, но как outgoingMessageReceived.
typeWebhook |
incomingMessageReceived; своя правка — outgoingMessageReceived |
typeMessage |
editedMessage |
| Флаг настроек | incomingWebhook; своя правка — outgoingMessageWebhook |
| Каналы | MAX, Telegram, WhatsApp |
Пример
Мария исправила в MAX сообщение 117428955282341903:
{
"typeWebhook": "incomingMessageReceived",
"instanceData": {"idInstance": 7100000001, "wid": "79990000001@c.us", "typeInstance": "v3", "channel": "max"},
"timestamp": 1791823712,
"idMessage": "117428955282341903:edit:1791823712447",
"eventId": "edit:8695836:117428955282341903:1791823712447",
"senderData": {
"chatId": "8695836", "chatName": "Мария", "chatType": "user",
"sender": "8695836", "senderName": "Мария", "senderType": "user",
"senderContactName": "", "senderPhoneNumber": 0
},
"messageData": {
"typeMessage": "editedMessage",
"editedMessageData": {
"textMessage": "Здравствуйте! Есть места на воскресенье?",
"stanzaId": "117428955282341903"
}
}
}
Поля
| Поле | Описание |
|---|---|
idMessage |
id события правки: {id}:edit:{версия}. Версия — время правки на площадке |
messageData.editedMessageData.stanzaId |
idMessage сообщения, которое исправили |
messageData.editedMessageData.textMessage |
текст после правки целиком; у файла — новая подпись |
Две разные правки одного сообщения — два уведомления с разными idMessage. Ответить цитатой, поставить реакцию или отметить прочитанным можно по stanzaId, а не по idMessage правки.
Остальные поля конверта — в статье Формат уведомления.
Своя правка
Сообщение исправили с телефона номера канала: typeWebhook — outgoingMessageReceived, sender — аккаунт канала, chatId — собеседник. Флаг — outgoingMessageWebhook. См. Свои сообщения.
В других каналах
| Канал | Версия в idMessage |
|---|---|
| MAX | время правки в миллисекундах |
| Telegram | время правки в секундах |
| время события правки в миллисекундах |
В группе chatId — группа, sender — участник, как у текстового сообщения (см. Текст).
После простоя
- Правки, сделанные, пока канал был не на связи, приходят при догоне.
- Сообщение, которое написали и исправили за простой, придёт само — уже с исправленным текстом. В MAX за ним придёт и правка.
- История чата хранит последний текст и отметку
isEdited— см. getChatHistory.
Как обработать
Заменить текст сообщения в вашей ленте:
def on_edit(body: dict) -> None:
data = body["messageData"]
if data["typeMessage"] != "editedMessage":
return
edit = data["editedMessageData"]
chat_id = body["senderData"]["chatId"]
update_text(chat_id, edit["stanzaId"], edit["textMessage"], edited_at=body["timestamp"])
Правки могут прийти не по порядку с другими событиями чата: храните timestamp и не заменяйте текст более старой правкой.
Что дальше
- editMessage — исправить своё сообщение.
- Удаление — уведомление об удалённом сообщении.
- Реакция — уведомление о реакции.
