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

Геопозиция

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

Собеседник отправил точку на карте, место или трансляцию геопозиции.

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

Пример

Мария отправила в MAX, где ждёт после занятия:

{
  "typeWebhook": "incomingMessageReceived",
  "instanceData": {"idInstance": 7100000001, "wid": "79990000001@c.us", "typeInstance": "v3", "channel": "max"},
  "timestamp": 1791823810,
  "idMessage": "117428962874105326",
  "eventId": "msg:8695836:117428962874105326",
  "senderData": {
    "chatId": "8695836", "chatName": "Мария", "chatType": "user",
    "sender": "8695836", "senderName": "Мария", "senderType": "user",
    "senderContactName": "", "senderPhoneNumber": 0
  },
  "messageData": {
    "typeMessage": "locationMessage",
    "locationMessageData": {
      "nameLocation": "",
      "address": "",
      "latitude": 55.0188,
      "longitude": 82.9387,
      "jpegThumbnail": "",
      "forwardingScore": 0,
      "isForwarded": false
    }
  }
}

Поля

Поле Описание
locationMessageData.latitude, longitude координаты, градусы, числа с дробной частью
locationMessageData.nameLocation название места; "", если его нет
locationMessageData.address адрес места; "", если его нет
locationMessageData.jpegThumbnail всегда "" — превью карты Gratio не передаёт
locationMessageData.isForwarded, forwardingScore геопозиция переслана — см. Ссылка и пересланное

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

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

Канал Что приходит
MAX только координаты
Telegram координаты; у места — адрес в address, название не передаётся. Трансляция — первой точкой
WhatsApp координаты, название места и адрес, если их выбрали. Трансляция — первой точкой

Место в WhatsApp:

"locationMessageData": {
  "nameLocation": "Школа робототехники",
  "address": "ул. Ленина, 12",
  "latitude": 55.0188,
  "longitude": 82.9387,
  "jpegThumbnail": "",
  "forwardingScore": 0,
  "isForwarded": false
}

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

Сделать ссылку на карту для оператора:

def on_location(body: dict) -> str | None:
    data = body["messageData"]
    if data["typeMessage"] != "locationMessage":
        return None
    loc = data["locationMessageData"]
    title = loc["nameLocation"] or loc["address"] or "Точка на карте"
    return f"{title}: https://yandex.ru/maps/?pt={loc['longitude']},{loc['latitude']}&z=17"

Что дальше

  • sendLocation — отправить геопозицию.
  • Контакт — уведомление о карточке контакта.

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