Потребность
Часто пользователи желают смотреть только те новости, которые им интересны. Поэтому у пользователя должна быть возможность поиска.
Решение
Сделаем бота с возможностью поиска по новостной ленте и подключим его в канал Телеграм. Сценарий:

Как это работает
На первом экране у нас блок Текст с приветствием и блок Фраз. В блоке Фразы напишем один пример - нашу системную сущность $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 - заголовок новости, url - урл полной статьи с сайта, массив tags - теги.
Теперь вернемся к нашему http-запросу. URL будет выглядеть так: https://nova.rambler.ru/localsearchv4/?query=${TEXT}&from=0&size=10&project=news_media&timeout=6000
Когда пользователь говорит фразу, бот автоматически сохраняет ее в переменную $TEXT и подставляет в URL запроса. Таким образом он получает новости, которые подходят под запрос.
Также добавьте переменную $result:
$httpResponse.blocks[0].data

Далее, от блока "HTTP-запрос завершен успешно" делаем блок Условие, и напишем $result.first() - берем первую новость.

От этого условия делаем новый экран. Добавим блок Текст, в котором выведем заголовок новости, а также хештеги. Выглядеть это будет так:

Также добавим на этот экран кнопку-ссылку "Читать подробности". Вставим в поле Ссылка - $result.current().url. Добавим кнопку ''Далее", она будет листать новости.

От кнопки Далее, делаем блок Условие, напишем там $result.next() - берем следующую новость. От этого условия делаем связь с блоком, где выводим заголовок новости. Сделаем логику по ветке else на тот случай когда у нас закончатся новости по определенному запросу. В итоге у нас получится такая конструкция:

Вот и все, теперь можем посмотреть как это будет работать в телеграме:

Часто пользователи желают смотреть только те новости, которые им интересны. Поэтому у пользователя должна быть возможность поиска.
Решение
Сделаем бота с возможностью поиска по новостной ленте и подключим его в канал Телеграм. Сценарий:

Как это работает
На первом экране у нас блок Текст с приветствием и блок Фраз. В блоке Фразы напишем один пример - нашу системную сущность $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 - заголовок новости, url - урл полной статьи с сайта, массив tags - теги.
Теперь вернемся к нашему http-запросу. URL будет выглядеть так: https://nova.rambler.ru/localsearchv4/?query=${TEXT}&from=0&size=10&project=news_media&timeout=6000
Когда пользователь говорит фразу, бот автоматически сохраняет ее в переменную $TEXT и подставляет в URL запроса. Таким образом он получает новости, которые подходят под запрос.
Также добавьте переменную $result:
$httpResponse.blocks[0].data

Далее, от блока "HTTP-запрос завершен успешно" делаем блок Условие, и напишем $result.first() - берем первую новость.

От этого условия делаем новый экран. Добавим блок Текст, в котором выведем заголовок новости, а также хештеги. Выглядеть это будет так:

Также добавим на этот экран кнопку-ссылку "Читать подробности". Вставим в поле Ссылка - $result.current().url. Добавим кнопку ''Далее", она будет листать новости.

От кнопки Далее, делаем блок Условие, напишем там $result.next() - берем следующую новость. От этого условия делаем связь с блоком, где выводим заголовок новости. Сделаем логику по ветке else на тот случай когда у нас закончатся новости по определенному запросу. В итоге у нас получится такая конструкция:

Вот и все, теперь можем посмотреть как это будет работать в телеграме:

Опубликован в: 04 / 04 / 2019