Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

В этой статье описан процесс получения данных из ответа от сервера. Ответом от сервера всегда являются Для использования ответа сервера в боте, сервер должен возвращать данные в формате JSON. 

Подсказка

Как создавать запросы к серверу для тестирования описано в этой статье.

...

Блок кода
languagepy
themeDJango
firstline1
titleТело запроса в формате Json:
linenumberstrue
{
    "ok": true,
    "result": {
        "user": {
            "id": 426232239,
            "is_bot": false,
            "first_name": "Ярослав",
            "last_name": "Ярославович",
            "username": "yaryarich",
            "language_code": "ru"
        },
        "status": "creator",
        "is_anonymous": false
    }
}


Составление адреса поля


Предположим, нам требуется подтянуть имя. Чтобы обратиться к этой информацииэтому полю, требуется нужно прописать полный адрес до неенего. Таким адресом будет result.result.user.first_name

...

  1. Для получения любой информации из JSON файла, при получении ответа от сервера, первым делом всегда пишется result, таким образом объявляется тело ответа. Адрес на этом этапе: «result».



  2. Элементы адреса разделяются между собой точками. Адрес на этом этапе: «result.».

  3. Обращаемся к списку с именем result. Адрес на этом этапе: «result.result».



  4. Обращаемся к списку с именем user. Адрес на этом этапе: «result.result.user».



  5. Указываем поле, которое содержит интересующую нас информацию, сейчас таким полем является first_name. Оно содержит в себе значение: Ярослав. Адрес на этом этапе: «result.result.user.first_name».


Предупреждение

В связи с особенностями языка программированияархитектуры системы, нет возможности успешно подтянуть значение переменных, которое равно true или false. При попытке подтянуть true, значение будет преобразовано в 1 и все отработает исправно, но если попробовать подтянуть false, то бот сломается, так как преобразует false в "", где "" – отсутствие символов. 

Попытка подтянуть значение поля ok, которое равно true, закончится неудачей:
В случае ok = true, будет подтянуто значение 1.
В случае ok = false, бот сломается, так как переменная окажется пустая.

Адрес поля «ok»: «result.ok»

...

Подсказка

Для более удобного получения адреса искомого поля можете использовать этого бота.


Использование адреса поля в сценарии

Попробуем получить значение переменной first_name из одного из примеров выше уже в сценарии. Для этого создадим запрос к серверу и подтянем оттуда искомый JSON.

...