Ответы пользователя по тегу ВКонтакте
  • Как реализовать хранение состояний в чат-боте для ВК?

    ilsur_dev
    @ilsur_dev
    https://ilsur.dev
    https://vk.com/dev/objects/message

    Нужно парсить событие message.new и проверять вхождение "geo". Если "geo" есть в событии, то значит геолокация отправлена. Дальше нужно обрабатывать всё, что находится под ключом "geo".

    Вот так выглядит сообщение без геолокации:
    {
      "type": "message_new",
      "object": {
        "date": 1562246807,
        "from_id": 124239035,
        "id": 18954,
        "out": 0,
        "peer_id": 124239035,
        "text": "Сообщение без геолокации",
        "conversation_message_id": 9652,
        "fwd_messages": [
          
        ],
        "important": false,
        "random_id": 0,
        "attachments": [
          
        ],
        "is_hidden": false
      },
      "group_id": 175820014,
      "secret": "test"
    }


    А вот сообщение с геолокацией:
    {
        "type": "message_new",
        "object":
        {
            "date": 1562246801,
            "from_id": 124239035,
            "id": 18953,
            "out": 0,
            "peer_id": 124239035,
            "text": "Сообщение с геолокацией",
            "conversation_message_id": 9651,
            "fwd_messages": [],
            "important": false,
            "random_id": 0,
            "attachments": [],
            "geo":
            {
                "type": "point",
                "coordinates":
                {
                    "latitude": 55.753228,
                    "longitude": 37.622511
                },
                "place":
                {
                    "country": "Россия",
                    "city": "Москва",
                    "title": "Москва, Россия"
                }
            },
            "is_hidden": false
        },
        "group_id": 175820014,
        "secret": "test"
    }
    Ответ написан
    2 комментария