В этой статье описан процесс получения данных из ответа от сервера. Для использования ответа сервера в боте, сервер должен возвращать данные в формате JSON.
Как создавать и тестировать запросы перед использованием в боте описано в этой статье. |
Вот мы получили JSON файл следующего вида.
{ "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.
Разберем этот адрес по структуре, чтобы понять, как он строится:
В связи с особенностями архитектуры системы, нет возможности успешно подтянуть значение переменных, которое равно true или false. При попытке подтянуть true, значение будет преобразовано в 1 и все отработает исправно, но если попробовать подтянуть false, то бот сломается, так как преобразует false в "", где "" – отсутствие символов. Адрес поля ok: «result.ok» |
Таким образом полный адрес искомого элемента: «result.result.user.first_name».
Составим еще один адрес, он отличается тем, что содержит в себе массив.
{ "calls": [ { "phone": "79996662211", "externalId": "", "additionalData": "", "variables": { "firstName": "Никита", "lastName": "Сергеев", "age": "33" } }, { "phone": "79996662233", "externalId": "", "additionalData": "", "variables": { "firstName": "Иван", "lastName": "Иванов", "age": "26" } } ] } |
В этом случае нужно получить значение поля age Ивана Иванова, для этого выполните следующие действия:
Индексация в массивах начинается с 0, поэтому если в массиве 3 элемента, то индексироваться они будут следующим образом: 0, 1, 2. |
Таким образом полный адрес искомого элемента: «result.calls.1.variables.age».
Для более удобного получения адреса искомого поля можете использовать этого бота. |
Попробуем получить значение переменной first_name из одного из примеров выше уже в сценарии. Для этого создадим запрос к серверу и подтянем оттуда значение нужного поля.
Для сохранения нужных данных в переменную указываем полный адрес в JSON к искомым данным.
как составить адрес поля, как разобраться в ответе сервера, как написать путь к информации в ответе от сервера. |