Как показать новости по запросу пользователя
Потребность
Часто пользователи желают смотреть только те новости, которые им интересны. Поэтому у пользователя должна быть возможность поиска.
Решение
Сделаем бота с возможностью поиска по новостной ленте и подключим его в канал Telegram. Сценарий:
Как это работает
На первом экране у нас блок Текст с приветствием и блок Фраз. В блоке Интенты напишем один пример — нашу системную сущность $TEXT
— она принимает любой текст.
От Интента с сущностью $TEXT
делаем следующий экран с блоком HTTP-запрос. В запросе мы будем обращаться к новостному порталу. В данном примере мы выбрали новости от Рамблера, так как там можно будет получить ответ в формате json. Для этого заходим в браузер Google Chrome, на странице Рамблер/новости нажимаем правую кнопку мыши и выбираем пункт «Просмотреть код». Откроется инспектор. Нажмите там на вкладку Network, чтобы увидеть все запросы, которые посылаются с данной страницы сайта. Теперь попробуйте что-нибудь поискать на сайте. Вы увидите в инспекторе, что поисковые запросы уходят по адресу такого вида:
https://nova.rambler.ru/localsearchv4/?query=запрос&from=0&size=10&project=news_media&timeout=6000
В результате запроса возвращается ответ в таком формате:
То есть JSON объект, в котором есть массив blocks, массив data — наш искомый массив найденных новостей. У каждой новости есть поле title_for_path