Как отправить сообщение через Телеграмм бота

В настоящий момент базовая версия Qlik Sense Enterprise имеет крайне небогатый функционал рассылки оповещений. А точнее, он вообще отсутствует.

В линейке продуктов присутствует такая вещь как Qlik Alerting, но он не везде подходит в виду своей стоимости и области применения (оповещения на основе данных из приложений). Поэтому для налаживания оперативных оповещений, нам придется использовать сторонние решения. Одно из них — боты Telegram.

Использование Telegram-ботов хорошо тем, что его можно начать без осваивания кликовского API, а также без установки дополнительных коннекторов. Поэтому, давайте начинать.

Создание Telegram-бота

Прежде всего, вам нужно добавить в Telegram в список контактов бота BotFather. Это служба, которая отвечает за создание новых ботов.

Пишем в чат с BotFather команду /newbot. После этого нас попросят указать имя нового бота. Оно должно заканчиваться на _bot (строчными буквами).

Отправка сообщений в Telegram при помощи python в 2 строки кода

В случае успеха, вы увидите сообщение с токеном вашего бота (комбинацию цифр и букв). Она будет нужна для отправки сообщений через вашего бота.

Собственно, на этом все.

Отправка сообщений из скрипта

Для отправки сообщения из скрипта нужно использовать нижеприведенный код, и запустить загрузку данных.

set vTBot_Token=; //Токен бота set vTBot_ChatID=; //ИД чата или получателя set vWebConnection=; //Название любого подключения с типом Web-файл на сервере Qlik set vTBot_Message=; //Текст сообщения, %0A — перенос строки TG_Message: LOAD 1 FROM [lib://$(vWebConnection)] (url is [https://api.telegram.org/bot$(vTBot_Token)/sendMessage?chat_id=$(vTBot_ChatID)parse_mode=HTML]); drop table TG_Message; //Очистка переменных, чтобы не отображать их в визуальном слое set vTBot_Token=; set vTBot_ChatID=; set vTBot_Message=; set vTBot_Message=;

Чтобы обращаться к Telegram, вам потребуется создать подключение к данным с типом web-файл к любому адресу, хоть к https://yandex.ru. Т.к. URL для обращения мы будем передавать через параметр URL IS, в котором для коннекта к web-файлу можно указать совершенно любой адрес.

Забавный факт — обращение к URL не только приводит к загрузке данных из него, но и позволяет инициировать действия во внешней системе. Мы специально указываем цифру 1 как поле в загрузке таблицы TG_Message, чтобы Qlik мог выполнить обращение к адресу, ничего при этом из него не загружая.

Если вам интересно, то в ответ отдается Json-строка с информацией об отправленном сообщении. Но мы не будет тратить время на ее разбор.

Откуда взять ID чата или пользователя? Рекомендую использовать этого бота:

У него можно узнать собственный ИД. Чтобы узнать ИД чата, нужно добавить в него бота и обратиться с командой /getgroupid.

Добавьте вашего бота себе в контакты, пропишите все необходимые параметры и запустите скрипт. Вы должны получить сообщение от бота.

Примеры использования

Мониторинг сбоев в заданиях обновления данных.

Создайте приложение с названием типа Task Control. В него разместите скрипт отправки сообщения с текстом типа «Сбой обновления данных, проверьте ».

Создайте для приложения Task Control задачу на обновление данных.

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

Теперь в случае завершения таска с ошибкой вы получите сообщение такого вида:

Это самый оперативный способ получения информации о сбое ровно в тот момент, когда он случится.

Мониторинг полноты данных в источнике

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

Дальнейшая загрузка этих данных приведет к недостоверной картине в аналитике, и бизнес пользователя начнут вам писать что-то вроде «ВАШ Qlik опять сломался».

Чтобы этого не происходило, можно перед перезаписью QVD-файла сравнивать кол-во записей в нем на данный момент, и кол-во данных в источнике. Если данных в источнике меньше чем X% от того что есть в QVD, то загрузка данных из источника пропускается. При этом, вы можете отправлять себе сигнальные сообщения об этих инцидентах.

Вот например как выглядела перезапись из медленного API данных с нуля. Первое число — сколько записей в QVD, второе — сколько записей в БД.

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

Рассылка информации по списку пользователей

Несомненно, вы уже подумали об организации рассылок оповещений через Telegram. Это можно реализовать через скрипт, хотя и не очень удобно — ведь вам придется средствами скрипта сгенерировать полный текст сообщения для каждого получателя. А значит, придется делать кучу джойнов и агрегирований.

Еще по теме:  Как убрать клавиатуру Telegram bot

Однако для MVP оповещений это весьма удобной вариант, т.к. позволяет гарантированно получить результат в предсказуемые сроки (в отличие от поднятия доп. сервисов, API-интеграций и прочего шаманства).

В общем механика такая: вам сначала нужно будет собрать таблицу, в которой каждая строка — это текст сообщения и ИД получателя, а после пройтись по этой таблице скриптом отправки сообщения через цикл. Структура скрипта может быть примерно такой:

Т.е. у нас есть таблица Messages с сообщениями, где каждое сообщение пронумеровано по номеру строки, в поле M_ID.

Дальше идем в цикле по значениям этого поля, при этом в качестве переменных получателя и сообщения через функцию peek забираем значения этих полей в соответствующей M_ID строке. Внутри Peek() вычитаем единицу от M_ID, т.к. нумерация строк в этой функции начинается с 0.

Заключение

Как видите, с помощью оповещений через Telegram очень легко повысить свою осведомленность о состоянии дел на сервере Qlik. Обязательно используйте эту механику, чтобы узнавать о нужных событиях до того, как вам начнут жаловаться пользователи.

А также, предусматривайте в своих скриптах сценарии реакции на нештатные ситуации.

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

Как сделать рассылку в Телеграм: боты и сервисы

Как сделать рассылку в Телеграм: боты и сервисы

Telegram постоянно расширяет свои инструменты связи с подписчиками. Если рассылку в Телеграме настроить правильно, она станет универсальным способом общения компании с аудиторией и повысит ее лояльность. Рассмотрим в статье, как делать рассылку сообщений в Телеграме, как не попасть в бан и какие сервисы можно применять для массовой рассылки.

Зачем нужны рассылки в Telegram

  • узнаваемости бренда;
  • увеличения продаж;
  • оповещения клиентов о новинках, акциях, предложениях и мероприятиях;
  • обратной связи от клиентов;
  • отправки личных и групповых сообщений.

Повысить продажи и конверсии также можно с помощью виджетов. Виджеты Calltouch автоматически обрабатывают обращения пользователей с сайта и лидформ Facebook* (*продукт компании Meta, которая признана экстремистской организацией в России) и ‎ВКонтакте, собирают заявки в нерабочее время, оптимизируют работу ваших менеджеров. Упростите общение с клиентом через бесплатные виджеты и оплачивайте только минуты разговора.

Виджеты Calltouch

  • Увеличьте конверсию сайта на 30%
  • Обратный звонок, промо-лендинги, формы захвата, мультикнопка, автопрозвон форм

Почему Телеграм эффективнее почты

Рекламные e-mail могут попасть в «Спам», но даже если письмо окажется во «Входящих», его откроют не все пользователи. Также для почтовых рассылок нужно использовать HTML-шаблоны, заниматься их оформлением. В Телеграме каждое сообщение доходит до адресата, и есть шанс, что предложение компании его заинтересует. К тому же рассылка в Телеграме простая: для сообщения нужен короткий текст, фотография, картинка или видео и смайлы.

Telegram дает массу возможностей для экспериментов с форматами контента. В этом кейсе мы рассказали о самых удачных из них (и не очень).

Как сделать рассылку сообщений в Telegram

Инструменты отправки бесплатные, но есть и платные сервисы для массовой рассылки.

В личные сообщения

В этом мессенджере есть защита от спама, поэтому функция массовых рассылок в личку отсутствует: ее можно делать только по группам и чатам или в Телеграм-каналах.

В группы и чаты

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

В каналы

В Телеграм-каналах администратора сообщества не банят, если пользователи покидают или выключают уведомления о сообщениях. Однако вы должны привлекать аудиторию полезным контентом с нативной рекламой, а не закидывать предложениями «в лоб‎»‎. Анализируйте охват каждого сообщения и определяйте, что нравится подписчикам.

Как не попасть в блокировку за спам

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

  • Не публикуйте прямые ссылки на товары и услуги — реклама должна быть нативной.
  • Рассылайте письма целевой аудитории: изучите и поработайте с их интересами и потребностями.
  • Отправляйте сообщения подписчикам, которые согласились их получать. Не отправляйте сообщения незнакомому сегменту аудитории — пользователи могут на вас пожаловаться.
  • Используйте креатив в рекламных и полезных постах.
  • Рассылайте сообщения один раз в неделю.

Боты, программы и сервисы для рассылок в Telegram

Сообщения можно автоматически рассылать с помощью ботов и специальных сервисов. Рассмотрим лучшие программы для рассылки сообщений в Телеграме.

SendPulse

Сервис рассылает сообщения в Telegram, Facebook* (*продукт компании Meta, которая признана экстремистской организацией в России), ВКонтакте, а также по e-mail и SMS.

В мессенджерах рассылку делает чат-бот, который также может информировать, консультировать и продавать товары.

В шаблоне рекламного сообщения добавляйте текст, файлы, картинки, кнопки и планируйте дату и время отправки. В личном кабинете смотрите статистику: сколько сообщений отправил бот, сколько подписчиков прочли письмо и отреагировали на него.

В SendPulse есть бесплатный тариф — можно отправить 15 000 сообщений в месяц 500 подписчикам. Если вы хотите высылать больше сообщений с неограниченного числа чат-ботов, выбирайте платную версию — ее стоимость зависит от количества подписчиков.

Еще по теме:  Запрет в Телеграмме группы

3seller

Сервис для массовой автоматической рассылки в чаты Telegram. В шаблон сообщения можно добавлять текст, фото и видео. Когда сообщение готово, сервис рассылает его по целевым чатам, а также может продублировать через заданный промежуток времени. Есть бесплатное тестирование: после регистрации вам дают 10 бесплатных сообщений. Сервис без абонентской платы — каждое сообщение стоит один рубль.

Сlient Hunter

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

Есть бесплатный тариф с ограниченным функционалом — можно отправить до 5 сообщений максимум 25 подписчикам, нет партнерских программ, каталога товаров. В профи-тарифе за 450 рублей в месяц будет доступен полный функционал без ограничений.

Tvigi

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

Есть бесплатный тариф Free, тариф Start со стандартными возможностями продвижения и тариф Pro с полным функционалом. Start для Телеграма стоит 3 890 рублей в месяц, а Pro — 5 835 рублей в месяц.

Telesender

Сервис для рекламной рассылки в Телеграме по своей базе. Специальный алгоритм сделает ваши сообщения заметными и выделит на фоне конкурентов. Можно подключить дополнительные услуги: проверка базы номеров на наличие Telegram, сбор логинов из чатов, увеличение просмотров сообщений в Телеграм-канале. Цены на основные и дополнительные функции сервиса узнавайте по запросу.

Как собрать подписчиков для Telegram-бота

Чтобы собрать аудиторию для Telegram-бота, используйте сайт, рекламу в социальных сетях и поисковых системах и прочие источники трафика. Разместите в них следующие инструменты:

  • Ссылку на бота. Предложите аудитории перейти по ссылке и подписаться на вас в Телеграме. Вышлите ее клиентам через другие мессенджеры, опубликуйте на сайте или в ваших аккаунтах в соцсетях.
  • QR-коды. Их можно создать в любом генераторе кодов с помощью ссылки t.me. Размещайте QR-код не только на веб-сайтах, но и в магазинах, торговых центрах и на любых разрешенных площадках с большим количеством посетителей.
  • Виджеты. Установите на сайте виджет подписки или чата. Во втором случае программа автоматически перенаправит пользователя в Телеграм-бот. Когда клиент выйдет из чата, диалог не закроется.
  • Мини-лендинги. Разместите на одностраничном лендинге кнопку подписки и пообещайте, а затем подарите бонусы всем подписавшимся.

Анализ рассылки

Анализ рассылки помогает оценивать ее эффективность и вносить корректировки. SendPulse собирает статистику по рассылке: сколько сообщений бот отправил, сколько подписчиков прочитали и ответили на письмо, сколько раз они перешли по ссылкам. Client Hunter собирает сведения о рекламе каналов, ботов и сайтов.

Чтобы проанализировать вовлеченность клиентов и собрать данные со всех рекламных площадок компании, подключите сквозную аналитику Calltouch. Система автоматически формирует отчеты в удобных дашбордах, а вы оцениваете эффективность каждого рекламного инструмента и всего бизнеса в целом.

Сквозная аналитика Calltouch

  • Анализируйте воронку продаж от показов до денег в кассе
  • Автоматический сбор данных, удобные отчеты и бесплатные интеграции

Типичные ошибки

Вот популярные ошибки рассылок:

  • Ошибка в определении целевой аудитории. Неинтересные и неподходящие письма пользователи будут как минимум игнорировать.
  • Одни и те же сообщения в разных каналах связи. Это не только выглядит непрофессионально, но и заставляет людей пропускать важные объявления.
  • Длинные сообщения. Не всем нравится читать объемные тексты с мобильных телефонов. Оптимальная длина — 160–180 знаков.
  • Много призывов к действию. Чтобы пользователь не растерялся, ограничьте письмо одной просьбой или вопросом.
  • Неподходящее время отправки. Ваша цель — побудить свою аудиторию к немедленному действию. Выберите время, в которое пользователи активны.
  • Поток сообщений. Рекламные письма, которые приходят чаще 1 раза в неделю, пользователи воспринимают как навязывание услуг.

Заключение

Telegram — еще одна популярная площадка связи с клиентами, где запускают массовую рассылку. Чтобы охватить больше целевой аудитории, используйте чат-ботов и сервисы рассылок — они помогут за короткое время отправить сообщения о вашем товаре тысячам подписчиков. Если нативная реклама продукта и контент будут полезными, лояльность клиентов увеличится, а продажи вырастут.

Источник: www.calltouch.ru

Как создать бота для Telegram | Бот отправляющий изображения котов

Боты для телеграмма сейчас весьма популярны, давайте и мы научимся делать своих.

ЯП который мы будем использовать, как всегда Python. Напишем простого бота, который по заданной команде будет присылать нам котиков, а еще добавим кнопку, чтобы не вводить команды каждый раз. Вот рабочий пример (надеюсь к моменту твоего прочтения, я его еще буду хостить).
И итог того, что должно получиться:

Скриншот чата с ботом

Подготовка

Для начала мы будем исходить из того, что Python3 уже установлен и из командной строки прекрасно работает >_ python и >_ pip. Сидим мы из под Linux или Windows неважно.
Для работы с телеграмом будем использовать эту библиотеку, для установки необходима командная строка с правами администратора.
И ввод одной команды.

Еще по теме:  В Телеграм во всех чатах перестали загружаться коментарии

pip install python-telegram-bot —upgrade

pip install requests

Чат с BotFather

Не забудем и про добавление команды

Чат с BotFather

Пишем код

В принципе, многое уже и так есть в примерах в репозитории и заново ничего придумывать не надо, мы лишь изменим и дополним то, что уже есть.
И так поехали, берем из примеров простого бота echobot2, который уже умеет отвечать на все сообщения и знает команды /help /start. Отвечалку на все сообщения мы изменим, команды тоже немного поменяем и добавим свою /cat, которая собственно и будет постить котиков :3.
Для начала подставляем ранее полученный токен, необходимый для работы.

Код инициализации бота

Смотрим дальше и видим, что все обработчики в боте (команды, текст и тд) находятся в функции main и добавляются как dp.add_handler
Как вы можете заметить, событие использования команды в чате состоит из двух частей: текст команд и функции, которая вызывается при ее использовании.

По тому же принципу добавим свою команду строкой
dp.add_handler(CommandHandler(«cat», sendcat)), где cat — это команда , sendcat — вызываемая функция при получение данной команды.

Код инициализации бота

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

Код отправки сообщения в Telegram

Изменим отправляемый текст на сообщение об ошибке

Код отправки сообщения в Telegram

Также изменим отправляемый текст на /start и /help

Украшательства закончены. Приступим к котикам :).
Котики у нас будут состоять из двух функций. Первую вы уже видели в хендлере — sendcat, она будет отвечать за отправку, но встает вопрос, а что же нам собственно отправлять? Тут мы будем использовать вторую функцию getcat которая будет отвечает за предоставление ссылок на картинки с котиками, брать которые мы будет с сайта thecatapi. Его апи позволяет получать ссылки на случайные картинки с котами, чем мы и воспользуемся.
Подключаем библиотеку requests и пишим простенькую функцию выдающию ссылки на картинки с котиками. Потом просто вызываем ее в sendcat.

Получения ссылки python requests

Проверим что получилос. Запускаем наш скрипт, ищем в телеграмме бота по нику, который вы задали ему при создании и. Котики .

Скриншот чата с ботом

Уже неплохо, но что-то все равно не то. Мы отправляем котов не как картинки, а как ссылки, телеграм конечно их подгружает и показывает, но решение так себе. Исправим же это, открываем документацию по работе с апи телеграма для ботов и ищем метод отправки картинок.

Функция отправки изображения в Telegram

Возвращаемся обратно и в функции sendcat заменяем всю строку отправки сообщения на bot.sendPhoto(chat_id=update.message.chat_id, photo=getcat())

Функция отправки сообщения с картинкой

Скриншот чата с ботом

Почти все готово, осталось сделать кнопку в чате, чтобы не вписывать постоянно команду вручную.
Использовать мы будем Inline клавиатуру (прямо в чате которая), она состоит из двух функций: первая отвечает за отрисовку (markup), вторая за обработку нажатий (callback).
Снова идем в примеры, которые даются авторами библиотеки, вытаскиваем вот это и переделываем под себя.
Кое-что доподключаем:

Подключение библиотек inline keyboard

В итоге получается

Код клавиатуры inline в Telegram

Скриншот чата с ботом

Исходный код

import requests from telegram import InlineKeyboardButton, InlineKeyboardMarkup, ReplyKeyboardRemove, ReplyKeyboardMarkup, KeyboardButton from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackQueryHandler import logging # Enable logging logging.basicConfig(format=’%(asctime)s — %(name)s — %(levelname)s — %(message)s’, level=logging.INFO) logger = logging.getLogger(__name__) # Define a few command handlers. These usually take the two arguments bot and # update. Error handlers also receive the raised TelegramError object in error. def start(bot, update): «»»Приветствие»»» update.message.reply_text(‘Привет, я бот, который очень любит котиков :3nНапиши мне /cat и я поделюсь ими с тобой’) def help(bot, update): «»»Сообщение для помощи с командами»»» update.message.reply_text(‘Чтобы получить котика напиши /cat’) def echo(bot, update): «»»На любой текст отвечаем ошибкой»»» update.message.reply_text(«Неизвестная команда :(«) def error(bot, update, error): «»»Log Errors caused by Updates.»»» logger.warning(‘Update «%s» caused error «%s»‘, update, error) def getcat(): »’Получение ссылки на картинку с котиком»’ try: r = requests.get(‘http://thecatapi.com/api/images/get?format=src’) url = r.url except: url = get_cat() print(‘Error with cat parsing’) pass return url def sendcat(bot, update): «»»Отправка котиков»»» bot.sendPhoto(chat_id=update.message.chat_id, photo=getcat(), reply_markup=draw_button()) def draw_button(): keys =[[InlineKeyboardButton(‘?Еще котика. ‘, callback_data=’1’)]] return InlineKeyboardMarkup(inline_keyboard=keys) def get_callback_from_button(bot, update): query = update.callback_query username = update.effective_user.username chat_id = query.message.chat.id message_id = query.message.message_id if int(query.data) == 1: bot.sendPhoto(photo=getcat(), chat_id=chat_id, message_id=message_id, reply_markup=draw_button()) def main(): «»»Start the bot.»»» # Create the EventHandler and pass it your bot’s token. updater = Updater(«СЮДА ВАШ ТОКЕН») # Get the dispatcher to register handlers dp = updater.dispatcher dp.add_handler(CallbackQueryHandler(get_callback_from_button)) dp.add_handler(CommandHandler(«start», start)) dp.add_handler(CommandHandler(«help», help)) dp.add_handler(CommandHandler(«cat», sendcat)) # on noncommand i.e message — echo the message on Telegram dp.add_handler(MessageHandler(Filters.text, echo)) # log all errors dp.add_error_handler(error) # Start the Bot updater.start_polling() # Run the bot until you press Ctrl-C or the process receives SIGINT, # SIGTERM or SIGABRT. This should be used most of the time, since # start_polling() is non-blocking and will stop the bot gracefully. updater.idle() if __name__ == ‘__main__’: main()

F.A.Q

  • Q: Т.к бот каждый раз запрашивает картинку, а потом еще и загружает ее в мессенджер, уходит масса времени. Как ускорить выдачу ответов?
  • A: Решение — использовать сервера Telegram, как кеш. Сохраняйте при отправке фото их media_id (куда нибудь в бд), чтобы потом можно было быстренько его оттуда вытянуть и отправить.
  • Q: А как сделать ребут, админку, оформить тексты т.д ?
  • A: Здесь есть отличные сниппеты
  • Q: Как осуществить . ?
  • A: Документация Telegram bot api, Вики библиотеки

Источник: liberbear.com

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