Боты Телеграм выполняющий расчеты

Telegram-оповещения на базе Power BI: создайте своего бота в Телеграм

Telegram — один из самых удобных способов получать оповещения. Если вам некогда заходить в отчёт, бывает важно видеть последние цифры в одном кратком сообщении. Особенно если источников данных много и заходить во все сервисы нет времени.

Но если вы умеете делать отчёты в Power BI и больше ничего, как тогда настроить оповещения в Telegram? Функционал получения данных в Power BI вас вполне устраивает — он довольно удобен. Можно ли обойтись им или нужны другие инструменты?

На самом деле можно! Вы можете создать бота в Telegram на базе Power BI, который каждый день будет присылать вам оповещения.

Схема достаточно проста:

  • получаете данные из разных источников в Power BI
  • рассчитываете нужные цифры из каждого источника,
  • формируете из цифр, букв и смайликов ёмкое сообщение (сообщение можно сделать разным в зависимости от полученных чисел),
  • создаёте бота в Telegram и разрешаете ему публикацию,
  • отправляете сообщение от имени бота себе в личку или в Telegram-канал (открытый или закрытый канал — решайте сами),
  • форматируете код, чтобы набор данных обновлялся онлайн,
  • выгружаете отчёт в Power BI Service и настраиваете расписание обновлений.

Пройдёмся по схеме более детально

Какие данные получить — решать вам, этот пункт разбирать не вижу смысла.

Уроки C# – Создаём Telegram бота


Что касается цифр — важно понимать, что в Telegram отправится не отчёт, а краткое сообщение. Поэтому столбцы или строки здесь не подойдут. Важно вычислить одно или несколько значений, которые и будут потом отправлены в сообщении. Удобно, что в Power Query уже есть кнопки для вычисления суммы, среднего и других общих величин.

Значение может быть в формате числа, но часто требуются преобразования типов. Вот несколько функций, которые нам помогут:

Number.From() // получить число например из текста, Text.From() // получить текст из числа или даты, Date.From() // получить дату из текста или числа.

Еще несколько важных функций, которые могут помочь отфильтровать данные и посчитать расхождения:

Date.AddDays(Date.From(DateTime.LocalNow()) , -1) // вчерашний день в формате даты (если хотите фильтровать данные за вчера), Number.Abs() // вычисление модуля числа (если требуется только положительная часть).

Важно понимать, что вчерашнего дня (или любого другого дня) может просто не быть в статистике. Это важно предусмотреть, например с помощью конструкции try-otherwise. В любом случае если день отсутствует, ваш бот не должен ломаться. Например, мой бот отправляет в этом случае нулевые значения.

Если хотите больше узнать о функциях и преобразованиях в Power Query — у меня на канале есть целый плейлист для новичков на эту тему: https://www.youtube.com/playlist?list=PL3du-Tm1nAm6SSQOCpryquOx-6aasPARM

Когда вы посчитали нужные числа, добавьте для них новые переменные, где эти числа будут в формате текста. Тут как раз поможет Text.From(). Почему для чисел нужны отдельные текстовые переменные? Дело в том, что на основе чисел удобно писать условия (например больше / меньше / равно), но сообщение мы формируем из текстовых переменных. Поэтому для условий и для сообщения нам нужны разные переменные.

Сформировать сообщение — самое простое. Для этого вы объединяете текстовые переменные значком 10000 then «Большой расход» else «Маленький расход»

Еще по теме:  Как обновить Телеграмм Хонор

Переменная «РасходВчера» должна быть числом, а переменная message — будет текстом. Соответственно сегодняшнее сообщение (message) будет зависеть от вчерашнего расхода.

Создать и настроить бота — тоже несложно. Достаточно выполнить пункт 1 инструкции: https://habr.com/ru/post/262247/. Если вы хотите отправлять сообщения от бота себе, то вам потребуется запустить диалог с ним. Для этого отправляете боту команду /start. Тоже самое может сделать и другой пользователь. Бот сможет отправлять пользователю сообщения только если тот запустит бота командой /start.

Не забудьте сохранить токен бота, он понадобится для отправки любых сообщений. Помимо токена для отправки сообщения от бота пользователю или в канал нужно знать ID пользователя или канала.

ID пользователя можно уточнить у такого же бота — userinfobot. При запуске userinfobot отправляет пользователю его ID, имя и фамилию. Именно ID нам и понадобится для отправки сообщений пользователю от бота. Сохраняем его вместе с токеном.

Другой вариант — отправка сообщений в Telegram-канал. Создайте закрытый или открытый Telegram-канал и добавьте туда бота. Дайте боту права администратора и возможность постить сообщения. После чего отправьте какое-то сообщение в этот канал от себя и перейдите по ссылке:

https://api.telegram.org/bot1234567:AGFnH-98pywSLbAuMTDGbpOLMRiY/getupdates

Токен бота в ссылке замените на свой.

Тут вы увидите историю сообщений бота и сможете без труда определить ID чата, который вам понадобится для отправки сообщений в Telegram-канал:

Если ID чата с минусом, значит так и должно быть, копируем вместе с минусом и сохраняем.

Теперь сама отправка сообщений — содержимое переменной «post» выглядит так:

try Json.Document(Web.Contents( «https://api.telegram.org/bot1234567:AGFnH-98pywSLbAuMTDGbpOLMRiY/sendMessage», [Query = [chat_id=»123456789″,text=message], Content = Text.ToBinary(«»)] ))[ok] otherwise false

Назовём этот код «отправка сообщения». Токен и ID пользователя/канала заменяете на свои, а message — это текстовая переменная сообщения, которую мы вычислили ранее. Если бот не смог отправить сообщение — он выдаст false, если смог — true. Рекомендую ставить этот шаг последним и завершать запрос словами «in post». Не забывайте, что между шагами в Power Query всегда ставится запятая. Именно запятая, а не перенос строки является разделителем шагов в Power Query.

Тут нас ждёт самое сложное — нужно заставить запрос обновляться онлайн.
Я выявил 2 важных условия, которые помогли мне настроить онлайн-обновление:
• бот должен представлять собой 1 запрос в Power Query
• бот должен представлять собой 1 шаг в Power Query.

Да, это неприятно, но иначе он будет постоянно ругаться и требовать перестроить эту комбинацию данных.

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

let a = 1, b=a*2, c=a*b*3 in c
let x = 1, y=x*2, z=x*y*3 in z

Теперь мы начинаем строить самого бота и копируем туда их код, занося каждый из запросов в свою переменную и разделяя шаги запятыми.
Назовём этот кусок кода «реализация бота»:

let first = let a = 1, b=a*2, c=a*b*3 in c, second = let x = 1, y=x*2, z=x*y*3 in z, message = Text.From( first) query» в таблицу:

let query = реализация бота, tab = #table(1, >) in tab

В результате мы получили всего 1 запрос, а все расчёты происходят в 1 шаге. Остальные запросы помогают нам писать код, но на них бот ссылаться не должен.

Уберём наши обозначения и посмотрим что в итоге получилось:

let query = let first = let a = 1, b=a*2, c=a*b*3 in c, second = let x = 1, y=x*2, z=x*y*3 in z, message = Text.From( first) https://api.telegram.org/ bot1234567:AGFnH-98pywSLbAuMTDGbpOLMRiY /sendMessage», [Query = [chat_id=»123456789″,text=message], Content = Text.ToBinary(«»)]))[ok] otherwise false in post, tab = #table(1, >) in tab

Еще по теме:  Как выклбчить цензуру в Телеграм кахастане

Выгрузка в Power BI Service. На этом этапе я рекомендую сделать копию pbix файла. В этой копии вы оставляете только 1 запрос — запрос бота. Именно его мы и будем выгружать в веб.

Если вы не пишете код вручную, для расчётов вы использовали другие запросы. Пусть эти запросы будут под рукой — они понадобятся при доработках. Но в веб я рекомендую выгружать файл pbix, содержащий 1 запрос, в котором находится всего 1 шаг. Так вы точно не ошибётесь.

В вебе важно отключить тестирование подключения запроса к телеграм, чтобы не получать много сообщений, всё остальное стандартно:

Результат

Мне удалось сделать сделать краткие информативные сообщения по достоверности данных. Мой бот сверяет данные из нескольких источников и указывает на расхождения:

Бот присылает ровно 1 сообщение в день и обновляется корректно. Если вы заметите проблемы с обновлением при таком построении запросов, скорее всего это проблемы с другими источниками в файле Power BI.

Еще раз перечислю важные моменты:

  • Бот должен находиться в 1 запросе и 1 шаге (без ссылок на другие запросы),
  • Из Power Query в модель лучше выгружать именно таблицу,
  • В Power BI Service нужно пропустить тестирование подключение для Telegram,
  • Чтобы застраховаться от отсутствия данных за какой-то день используем try-otherwise.

Пишите в комментариях удалось ли вам построить бота и оставляйте скрины сообщений, которые он отправляет;)

Источник: directprobi.ru

Как создать телеграм бота калькулятор

dubaifood.ru

Telegram – одна из самых популярных мессенджеров на сегодняшний день. Одним из главных ее преимуществ является возможность разработки собственных ботов. Боты могут выполнять различные функции, например, отвечать на сообщения пользователей, отправлять уведомления или даже выполнять сложные вычисления. В этой статье мы поговорим о том, как создать телеграм бота-калькулятора.

Калькулятор – простая, но полезная функция, которая может быть реализована в телеграм боте. Он позволяет пользователю производить различные математические операции, такие как сложение, вычитание, умножение и деление. Создание такого бота может быть полезно для использования в личных целях или, возможно, размещения его в публичном канале.

Примечание: Не забудьте сохранить токен бота в безопасном месте, так как он является ключом для доступа к вашему боту.

Шаг 1: Установка библиотеки python-telegram-bot

Перед тем, как начать создавать телеграм бота, необходимо установить библиотеку python-telegram-bot. Она предоставляет удобный интерфейс для работы с Telegram API и позволяет легко создавать и настраивать ботов.

  1. Откройте командную строку или терминал.
  2. Установите библиотеку с помощью команды:

pip install python-telegram-bot

Теперь у вас есть все необходимое для начала создания телеграм бота на Python с использованием библиотеки python-telegram-bot.

Шаг 2: Создание бота в Telegram

Чтобы создать телеграм бота, вам потребуется выполнить следующие шаги:

Поздравляю, вы только что создали своего собственного телеграм бота! Теперь вы можете использовать его для создания калькулятора или любой другой функциональности, которую вы хотите добавить.

В следующем шаге мы научимся настраивать команды для вашего бота и связывать его с сервером.

Шаг 3: Написание кода калькулятора

Теперь давайте перейдем к написанию кода нашего калькулятора.

  1. Создайте новый файл с расширением .py и названием calculator.py.
  2. Откройте файл в текстовом редакторе и добавьте следующий код:

from telegram import InlineKeyboardMarkup, InlineKeyboardButton from telegram.ext import Updater, CommandHandler, CallbackQueryHandler def start(update, context): # Отправляем сообщение с инструкциями о том, как использовать калькулятор update.message.reply_text(‘Это калькулятор. Введите первое число, затем операцию (+, -, *, /) и второе число.’) def calculate(update, context): # Получаем введенное пользователем выражение expression = update.message.text # Проверяем, что выражение не пустое и содержит три части: число, операцию и число if len(expression.split()) != 3: update.message.reply_text(‘Неверное выражение. Пожалуйста, введите выражение в формате «число операция число».’) return # Разделяем выражение на число, операцию и число num1, operator, num2 = expression.split() try: num1 = float(num1) num2 = float(num2) except ValueError: update.message.reply_text(‘Неверное выражение. Пожалуйста, введите числа в числовом формате.’) return # Вычисляем результат в зависимости от операции if operator == ‘+’: result = num1 + num2 elif operator == ‘-‘: result = num1 — num2 elif operator == ‘*’: result = num1 * num2 elif operator == ‘/’: try: result = num1 / num2 except ZeroDivisionError: update.message.reply_text(‘Деление на ноль невозможно.’) return else: update.message.reply_text(‘Неверная операция. Пожалуйста, используйте одну из следующих операций: +, -, *, /’) return # Отправляем результат пользователю update.message.reply_text(f’Результат: ‘) def main(): # Создаем экземпляр Updater и передаем ему токен бота updater = Updater(«YOUR_TOKEN», use_context=True) # Получаем диспетчер для регистрации обработчиков dp = updater.dispatcher # Регистрируем обработчики команд dp.add_handler(CommandHandler(‘start’, start)) dp.add_handler(CommandHandler(‘calculate’, calculate)) # Запускаем бота updater.start_polling() updater.idle() if __name__ == ‘__main__’: main()

Еще по теме:  Как создать бота персонажа в Телеграмме

Из этого кода вы можете видеть, что мы используем пакет python-telegram-bot для работы с API Telegram и обрабатываем команды с помощью обработчиков.

Спекулянт Бот — трейдинг, инвестиции, акции для начинающих: Trsignal_bot

Телеграмм бот для анализа акций и спекулирования

Телеграмм бот для анализа акций и спекулирования

Поставьте пожалуйста оценку:
Голосов: 5 чел. Рейтинг: 2.6 из 5 .
Опрос: Как часто Вы пользуетесь телеграмом? (Кол-во голосов: 20035)
Каждый день
Через день
Раз в неделю
Раз в месяц
Очень редко
Чтобы проголосовать, кликните на нужный вариант ответа. Результаты

Оставить комментарий:

Последние комментарии

Заманивают к себе в офис на калужской , прикрываясь что у них база всея квартир закрыта , выманивают.

Мошенница ! Никогда не переводите ей деньги ! После оплаты перестает отвечать на сообщения и блокир.

Мошенник! Первые четыре сделки показал в плюс, потом предложил отбить убыток монетой bts, таким обра.

Добрый день, попалась точно также, пусть они подавятся этими деньгами, обидно то , что хотела сдел.
Отзыв о компании wemakefab (Виктор Рындин): Обращаясь в wemakefab с задачей создания агрегатора обм.
Опрос: Любимая категория ботов телеграм (Кол-во голосов: 3853)
Развлечения
Фото и видео
Финансы, криптовалюта
Образование
Чтобы проголосовать, кликните на нужный вариант ответа. Результаты

Самые популярные боты

  • Изображение Телеграм бот для раздевания девушек. Просто пришли ему фотографию любой одетой девушки и он сразу снимет с нее бельеТелеграм бот для раздевания девушек. Просто пришли ему фотографию любой одетой девушки и он сразу снимет с нее белье 468249
  • Изображение Телеграм бот раздевает любую девушку по фотографии и увидеть все её прелестиТелеграм бот раздевает любую девушку по фотографии и увидеть все её прелести 125372
  • Изображение Бот для отложенного постинга в телеграмм каналБот для отложенного постинга в телеграмм канал 124947
  • Изображение Этот бот решит все ваши тесты и выдаст ответы на такие платформы, как якласс мэш рэш цдз скайсмарт за считанные секунды! Всего лишь нужно прислать ему ссылку на тест.Этот бот решит все ваши тесты и выдаст ответы на такие платформы, как якласс мэш рэш цдз скайсмарт за считанные секунды! Всего лишь нужно прислать ему ссылку на тест. 106210
  • Изображение Telegram бот - текст в речь. Переводит текстовые сообщения в голос роботаTelegram бот — текст в речь. Переводит текстовые сообщения в голос робота 103035
  • Изображение Телеграмм бот - Боря пранкер. Лучший бот для телефонного розыгрыша друзейТелеграмм бот — Боря пранкер. Лучший бот для телефонного розыгрыша друзей 83023
  • Изображение Телеграм бот для анонимного просмотра страниц в ИнстаграмТелеграм бот для анонимного просмотра страниц в Инстаграм 76212
  • Изображение Телеграм бот для скачивания видео без водяного знака и аудио с ТикТокТелеграм бот для скачивания видео без водяного знака и аудио с ТикТок 71413
  • Изображение Телеграмм бот для подмены номераТелеграмм бот для подмены номера 71081
  • Изображение Телеграмм бот Максим для озвучки текстаТелеграмм бот Максим для озвучки текста 64937

Источник: tlgbot.ru

Рейтинг
( Пока оценок нет )
Загрузка ...