Перейти к содержимому

Ссылка и пересланное

Обновлено 17 октября 2026

Собеседник переслал сообщение из другого чата или прислал ссылку, к которой площадка сделала карточку превью.

typeWebhook incomingMessageReceived
typeMessage extendedTextMessage
Флаг настроек incomingWebhook
Каналы MAX, Telegram, WhatsApp, почта

Пример

Мария переслала в MAX сообщение из чата родителей:

{
  "typeWebhook": "incomingMessageReceived",
  "instanceData": {"idInstance": 7100000001, "wid": "79990000001@c.us", "typeInstance": "v3", "channel": "max"},
  "timestamp": 1791823720,
  "idMessage": "117428958116209731",
  "eventId": "msg:8695836:117428958116209731",
  "senderData": {
    "chatId": "8695836", "chatName": "Мария", "chatType": "user",
    "sender": "8695836", "senderName": "Мария", "senderType": "user",
    "senderContactName": "", "senderPhoneNumber": 0
  },
  "messageData": {
    "typeMessage": "extendedTextMessage",
    "extendedTextMessageData": {
      "text": "Занятие в субботу переносится на 12:00.",
      "description": "",
      "title": "",
      "forwardingScore": 1,
      "isForwarded": true
    }
  }
}

Поля

Поле Описание
extendedTextMessageData.text текст сообщения; у пересланного — текст оригинала
extendedTextMessageData.isForwarded true — сообщение переслано
extendedTextMessageData.forwardingScore 1 у пересланного, 0 у остальных. Сколько раз пересылали, Gratio не считает
extendedTextMessageData.title заголовок карточки ссылки; "", если карточки нет
extendedTextMessageData.description описание карточки ссылки

Автора оригинала и чат, откуда переслали, Gratio не передаёт.

Остальные поля конверта — в статье Формат уведомления.

Ссылка с превью

Карточку ссылки отдаёт только MAX:

"messageData": {
  "typeMessage": "extendedTextMessage",
  "extendedTextMessageData": {
    "text": "Расписание на сайте: https://school.ru/schedule",
    "description": "Занятия по робототехнике для детей 7–14 лет",
    "title": "Расписание — Школа робототехники",
    "forwardingScore": 0,
    "isForwarded": false
  }
}

В Telegram и WhatsApp сообщение со ссылкой приходит обычным текстом — textMessage, см. Текст, ссылка — в самом тексте.

Пересланный файл

Пересланные фото, документ, контакт или геопозиция приходят своим видом — imageMessage, documentMessage, contactMessage и т. д. Признак пересылки — isForwarded: true внутри данных:

"messageData": {
  "typeMessage": "documentMessage",
  "fileMessageData": {
    "downloadUrl": "https://api.gratio.net/media/7100000001/8695836/117428960974949548/0/d8f9…",
    "caption": "", "fileName": "Расписание.pdf", "jpegThumbnail": "", "isAnimated": false,
    "mimeType": "application/pdf", "forwardingScore": 1, "isForwarded": true
  }
}

В других каналах

Канал Пересланное Карточка ссылки
MAX extendedTextMessage есть
Telegram extendedTextMessage нет
WhatsApp extendedTextMessage нет
Почта письмо-пересылка: extendedTextMessage, текст — целиком, с пересланной частью; см. Письмо нет

Как обработать

Показать оператору пометку «переслано», текст — как обычно:

def message_text(data: dict) -> tuple[str, bool]:
    """Текст и признак пересылки для любого текстового вида."""
    kind = data["typeMessage"]
    if kind == "textMessage":
        return data["textMessageData"]["textMessage"], False
    if kind in ("extendedTextMessage", "quotedMessage"):
        ext = data["extendedTextMessageData"]
        return ext["text"], bool(ext.get("isForwarded"))
    return "", False

Что дальше

Была ли статья полезна?