Бот Телеграм chat id

Содержание

Контекстная, таргетированная реклама и веб-аналитика

Подробное руководство по настройке отправки заявок с сайта в Telegram с помощью Google Tag Manager своими руками.

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

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

Пользователь заходит к вам на сайт, оставляет заявку, и вы сразу получаете ее в Telegram. Реализовать это можно самостоятельно, без каких-либо финансовых затрат, используя только возможности Telegram, Google Spreadsheet и Google Tag Manager.

Get Telegram Chat ID

Какой практический смысл этой настройки?

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

Перед проведением 2 ноября 2020 года бесплатного вебинара на своем канале YouTube, на котором в режиме реального времени показывал данную настройку, я определил для себя несколько целей:

  • продемонстрировать нестандартные возможности работы с Google Tag Manager;
  • иметь запасной вариант приема обращений (дополнение к CRM-системе, e-mail и т.д.);
  • потому что это бесплатно и просто, а значит каждый может попробовать настроить;
  • забавы ради;

Полное видео трансляции можно посмотреть ниже:

Как это сделать?

Последовательность настройки отправки заявок с сайта в Telegram с помощью GTM сводится к нескольким простым шагам:

  • создание Telegram-бота;
  • получение token;
  • активация бота;
  • получение chat id;
  • настройка извлечения данных из полей формы в Google Tag Manager + специальный тег;
  • добавление кода в редактор скриптов с указанием всех настроек;
  • отправка заявки с сайта и проверка, дошла ли она в Telegram;

Давайте рассмотрим каждый шаг подробнее.

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

Рекомендация: для удобства работы и тестирования установите десктопную версию Telegram.

Заявки с сайта в Telegram с помощью Google Tag Manager

Главный бот BotFather

Нажмите на кнопку Start или введите /start:

Заявки с сайта в Telegram с помощью Google Tag Manager

Вы увидите список команд для создания бота или управлениями текущими (уже созданными):

Заявки с сайта в Telegram с помощью Google Tag Manager

Команды для бота

В списке есть команда /newbot. Данная функция позволяет создать нового бота. Вы можете прописать эту команду вручную в поле отправки сообщения или просто нажать на эту команду в списке:

Заявки с сайта в Telegram с помощью Google Tag Manager

Придумайте имя для бота и нажмите Enter (в моем примере — myfirstbot):

Заявки с сайта в Telegram с помощью Google Tag Manager

На следующем шаге выберете логин (username) для вашего бота. Он должен заканчиваться на bot. Например: TetrisBot или tetris_bot (в моем примере — moyLeadBot):

Заявки с сайта в Telegram с помощью Google Tag Manager

Логин (username) Telegram-бота

Если логин занят, вам придет уведомление: Sorry, this username is already taken. Please try something different. Вам нужно будет придумать другой username для своего бота

Заявки с сайта в Telegram с помощью Google Tag Manager

Сохраните токен, который бот вам пришлет в ответном сообщении (в моем примере — 1373742947:AAEULIWMmPCEAqSoduIYlIj-PezQrIjDmmE) . Он понадобится вам в дальнейшем.

Еще по теме:  Как послать Телеграмму в Англию

Заявки с сайта в Telegram с помощью Google Tag Manager

Затем следует активировать бота. Чтобы это сделать, вам нужно найти его в поиске Telegram и нажать на Start:

Заявки с сайта в Telegram с помощью Google Tag Manager

Теперь необходимо получить chat id. Вставьте в браузер ссылку:

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

Чат-бот Telegram и QlikView Qlik Sense. Интеграция через PHP

Чат бот телеграм

В этой статье я расскажу как создавать закрытый Telegram-канал, в который будут приходить важные оповещения. Плюс расскажу, как можно получать данные из QlikView и Qlik Sense с помощью чат-бота, которому Вы например пишите что хотите получить. Например, «Продажи за вчерашний день по Москве». И система Вам автоматически присылает отчет — картинку или Excel-файл.

qlikview

Чат-бот Telegram и QlikView Qlik Sense. Интеграция через PHP

Статья будет писаться постепенно и кусками. Подписывайтесь на мой Telegram-канал https://t.me/qlik_insight, чтобы не пропустить новую литературу по QlikView и Qlik Sense, а также самые «мощные», с технологической точки зрения, статьи.
Структура статьи будет выглядеть примерно так:

  1. Создание системы уведомлений в закрытом телеграм-канале (telegram канал, робот, отправка сообщений);
  2. Создание простого чат-бота (раскрою структуру приема и отправки сообщений);
  3. Создание команды для получения данных из приложения QlikView (с помощью API);
  4. Создание команды для получения данных из приложения Qlik Sense (с помощью API).

Создание системы уведомлений в закрытом Telegram-канале с применением QlikView или Qlik Sense

Процедура отправки сообщений в Telegram канал довольно простая. Нужно выполнить несколько действий, после которых станет доступным «интерфейс» отправки текстовых сообщений в телеграм-канал.

Краткий обзор шагов:

  1. Создать Telegram-канал;
  2. Создать бота;
  3. Получить все необходимые параметры объектов;
  4. Собрать URL-строку;
  5. Отправить в браузере сообщение (тестирование);
  6. Отправить сообщение из скрипта QlikView.

А теперь пройдемся более подробнее по шагам.

qlikview

Шаг 1 — создаем закрытый телеграм-канал

Заходим в мобильное приложение Telegram и создаем закрытый телеграм-канал (все как на картинках).

Создание закрытого телеграм канала для получения уведомлений по QlikView и Qlik Sense

Нажимаем «New Channel»:

Заполняем наименование канала и его описание:

Создание закрытого телеграм канала для получения уведомлений по QlikView и Qlik Sense

Выбираем «Private Channel», чтобы в канал можно было зайти только по ссылке:

Создание закрытого телеграм канала для получения уведомлений по QlikView и Qlik Sense

qlikview

Закрытый телеграм создан:

Создание закрытого телеграм канала для получения уведомлений по QlikView и Qlik Sense

Для Telegram канала выбираем фотографию:

Создание закрытого телеграм канала для получения уведомлений по QlikView и Qlik Sense
Должен получиться вот такой вот закрытый Telegram-канал, в который мы будем посылать сообщения через чат-бота.
Создание закрытого телеграм канала для получения уведомлений по QlikView и Qlik Sense

Шаг 2 — регистрируем чат-бота

Далее нам необходимо создать чат-бота. Для этих целей внутри самого Telegram есть системный чат-бот BotFather:

Чат-бот пришлет вариации команд, в том числе /newbot для создания бота. Выбираем эту команду:

BotFather предлагает ввести имя нашего бота (то, которое будет отображаться, можно на кириллице):

Далее нам необходимо ввести USERNAME Бота, которое должно оканчиваться на bot:

Если имя занято, то BotFather предложит сделать попытку снова (пока не попадется свободный username):

Кликаем на наш бот и нажимаем START:

/start — это название команды. В дальнейшем в бот можно ввести список команд и каждой команде на стороне backend (на сервере) задать последовательность тех или иных действий.

При регистрации бота команда /start пустая:

qlikview

Помните, чат бот BotFather выдал нам token? Это ключевая строка, без которой мы не сможем взаимодействовать с ботом. Скопируйте ее себе куда-нибудь. Если вдруг потеряете, то всегда сможете вернуться к BotFather и попросить прислать его токен снова.

Шаг 3 — Добавляем бота в качестве администратора в Telegram-канале (через мобильное приложение)

Чтобы бот смог присылать сообщения в телеграм-канал, его необходимо добавить в администраторы канала. Заходим в настройки канала и кликаем на Administrators:

Добавляем бота в качестве администратора в Telegram-канале (через мобильное приложение)

Add Administrator — выбираем пункт «Добавить администратора»

Добавляем бота в качестве администратора в Telegram-канале (через мобильное приложение)

Добавляем бота в качестве администратора в Telegram-канале (через мобильное приложение)

Все — бот добавлен в качестве администратора в закрытый Telegram канал:

Добавляем бота в качестве администратора в Telegram-канале (через мобильное приложение)

Шаг 4 — Получаем ID закрытого телеграм-канала для отправки сообщений через чат-бот и структура ссылки

Получаем chat_id Для приватного телеграм-канала

Для приватного телеграм канала необходимо взять цифры без буквы «c» и до знака «_». И добавить префикс -100.

https://api.telegram.org/bot######################/sendMessage?chat_id=-100#######################128578;

Шаг 6 — Отправляем сообщение в telegram-канал из QlikView 12

Теперь отправим простое сообщение из QlikView Script. Копируем наш URL, переходим в приложение QlikView 12 и выбираем Web Files:

Отправляем сообщение в telegram-канал из QlikView 12

Вбиваем наш URL:

Отправляем сообщение в telegram-канал из QlikView 12

Получаем строку. Эта строка будет каждый раз разная, но для начала мы формируем структуру запроса:

Отправляем сообщение в telegram-канал из QlikView 12

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

qlikview

В чат пришли два сообщения — первое, которое пришло после создания структуры скрипта, а второе после перезагрузки скрипта.

Отправляем сообщение в telegram-канал из QlikView 12

Специальные символы для текстовой строки (перенос строки и т.д.)

Если Вам необходимо в сообщении перенести строку, то необходимо использовать спецсимволы. Ниже приведен их список:

Вне контура Qlik: отправка сообщения через PHP в телеграм-канал

Токен и chatID неправильный (исправил символы).

Источник: ivan-shamaev.ru

Пишем бота для telegram на node.js

Как оказывается, написать бота для telegram, как два пальца об асфальт.

Если кому-то нужно разработать бота для telegram или для другой платформы, напишите мне в VK — сделаем. Также интегрируем с 1С и остальными требуемыми программными продуктами.

Для чего можно использовать бота:

  • Социальные боты в электронной коммерции. Боты-продажники;
  • Боты напоминалки;
  • Проводить обучение;
  • Использоваться для управления умным домом и многое другое, все на что способна фантазия!

Итак, чтобы написать бота нам потребуется:

Вначале опишу какой простой бот получился в Telegram

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

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

  • умеет отправлять пользователю на запрос — классическую музыку рандомно
  • Две клавиатуры прикрутил к нему обычную и инлайновую
  • Отвечать на кое-какие сообщения

Начинаем писать бота в Telegram

В телеграм находим BotFather.

/newbot

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

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

Начинаем разработку бота на Node.js

В консоли пишем:

npm init -y

для создания package.json и управления зависимостями.

npm install —save node-telegram-bot-api

Файл index.js получился такой самый простой:

const TelegramBot = require(‘node-telegram-bot-api’); const token = ‘СЮДА_ВСТАВЛЯЕМ_ТОКЕН_КОТОРЫЙ_ПОЛУЧИЛИ’; const bot = new TelegramBot(token, ); bot.onText(//echo (.+)/, (msg, match) => < const chatId = msg.chat.id; const resp = match[1]; // the captured «whatever» bot.sendMessage(chatId, resp); >); bot.on(‘message’, (msg) => < const chatId = msg.chat.id; bot.sendMessage(chatId, ‘Получили твое сообщение! Спасибо!’); >);

Вставляем свой токен, который получили от BotFather и можно его разместить на бесплатном хостинге Heroku, и все сразу заработает, самый простой ботик!

Но лучше токен, поместить в переменную окружения, также можно на Heroku.

Полезные ссылки по ботам Телеграм

Документация по ботам telegram находится: https://core.telegram.org/bots/api

Также есть сайт и на русском с описанием: https://tlgrm.ru/docs/bots/api

Описываю какой код бота для Телеграм получился

const fs = require(‘fs’);

Подключаем библиотеку для работы с файлами

const TelegramBot = require(‘node-telegram-bot-api’); const token = process.env.TELEGRAM_BOT_TOKEN; const bot = new TelegramBot(token, ); const idAdmin = 32949386;

Подключаем библиотеку node-telegram-bot-api, токен получаем из переменной окружения, и устанавливаем константу idAdmin — ему дополнительно сообщения потом будем слать.

bot.on(‘message’, (msg) => < const chatId = msg.chat.id; const first_name = msg.chat.first_name; if (msg.text) < const text = msg.text.toLowerCase(); if (~text.indexOf(«привет»)) < bot.sendMessage(chatId, ‘Приветик, ‘ + first_name + ‘!’); >else if (~text.indexOf(«start»)) < >else if (~text.indexOf(«закрыть»)) < bot.sendMessage(chatId, ‘Клавиатура закрыта’, < reply_markup: < remove_keyboard: true >>); > else if (~text.indexOf(«клав»)) < openKlava(chatId); >else if (~text.indexOf(«здраст»)) < bot.sendMessage(chatId, ‘Здравствуй, здравствуй, ‘ + first_name + ‘!’); >else if (~text.indexOf(«здравст»)) < bot.sendMessage(chatId, ‘Здравствуй, здравствуй, ‘ + first_name + ‘!’); >else if (~text.indexOf(«дур»)) < bot.sendMessage(chatId, » + first_name + ‘, не ругайся, а то обижусь!’); >else if (~text.indexOf(«туп»)) < bot.sendMessage(chatId, » + first_name + ‘, не ругайся, а то обижусь!’); >else if (~text.indexOf(«класи»)) < openClassik(chatId, first_name); >else if (~text.indexOf(«класси»)) < openClassik(chatId, first_name); >else if (~text.indexOf(«про автора»)) < bot.sendMessage(chatId, ‘Про автора бота’, < reply_markup: < inline_keyboard: [ [ < text: ‘Автор’, url: ‘https://polyakovdmitriy.ru’ >], [ < text: ‘Классика’, callback_data: ‘classik’ >] ] > >) > else < bot.sendMessage(chatId, » + first_name + ‘, я тебя не понимать!’); >> bot.forwardMessage(chatId, idAdmin, msg.message_id); >);

Здесь у нас в bot.on(‘message’ — прилетают все сообщения.

const chatId = msg.chat.id; — Достаем id чата.

const first_name = msg.chat.first_name; — Достаем имя пользователя.

Здесь: Если пришел текст привет — то бот отвечает: Приветик, Имя! if (~text.indexOf(«привет»)) < bot.sendMessage(chatId, ‘Приветик, ‘ + first_name + ‘!’);

И также остальные текстовые фразы обрабатывает.

bot.sendMessage(chatId, ‘Про автора бота’, < reply_markup: < inline_keyboard: [ [ < text: ‘Автор’, url: ‘https://polyakovdmitriy.ru’ >], [ < text: ‘Классика’, callback_data: ‘classik’ >] ] > >)

Этим кодом создается клавиатура инлайновая.

bot.forwardMessage(chatId, idAdmin, msg.message_id); — этим кодом все сообщения пересылаются админу.

bot.onText(//start/, (msg, match) => < const chatId = msg.chat.id; bot.sendMessage(chatId, ‘Приветик, ‘ + msg.chat.first_name + ‘!’); openKlava(chatId); >);

Здесь обрабатывается команда /start

bot.on(‘callback_query’, (query) => < const chatId = query.message.chat.id; if (query.data === ‘classik’) < openClassik(chatId, query.message.chat.first_name); >>);

Этим кодом обрабатывается callback — от инлайновой клавиатуры.

bot.on(‘contact’, (msg) => < const chatId = msg.chat.id; bot.sendMessage(chatId, ‘Спасибо! Ваш заказ принят, мы с Вами свяжемся!’); >);

Этим кодом отлавливается контакты, которые отправили боту, хотя их можно также отловить bot.on(‘message’ — сюда они тоже приходят.

function openKlava(chatId) < bot.sendMessage(chatId, ‘Клавиатура открыта’, < reply_markup: < keyboard: [ [ < text: ‘Классика’ >, < text: ‘Закрыть’ >], [ < text: ‘Заказать разработку бота’, request_contact: true >], [ < text: ‘Про автора’ >] ], one_time_keyboard: true > >) >

Здесь создаем клавиатуру.

request_contact: true — обозначает запрос контактов, также можно запрашивать локацию.

function openClassik(chatId, first_name) < fs.readdir(‘./klasik/’, function(err,files) < const rf = files[Math.floor(Math.random()*files.length)]; bot.sendMessage(chatId, » + first_name + ‘, лови классическую музыку!’); bot.sendAudio(chatId, ‘./klasik/’ + rf).then(()=>< bot.sendMessage(chatId, ‘И слушай!’); >); >) >

Этот код отправляет классическую музыку, случайно выбранную из папки ./klasik/

Итого файл index.js полностью:

const fs = require(‘fs’); const TelegramBot = require(‘node-telegram-bot-api’); const token = process.env.TELEGRAM_BOT_TOKEN; const bot = new TelegramBot(token, ); const idAdmin = 32949386; bot.on(‘message’, (msg) => < const chatId = msg.chat.id; const first_name = msg.chat.first_name; if (msg.text) < const text = msg.text.toLowerCase(); if (~text.indexOf(«привет»)) < bot.sendMessage(chatId, ‘Приветик, ‘ + first_name + ‘!’); >else if (~text.indexOf(«start»)) < >else if (~text.indexOf(«закрыть»)) < bot.sendMessage(chatId, ‘Клавиатура закрыта’, < reply_markup: < remove_keyboard: true >>); > else if (~text.indexOf(«клав»)) < openKlava(chatId); >else if (~text.indexOf(«здраст»)) < bot.sendMessage(chatId, ‘Здравствуй, здравствуй, ‘ + first_name + ‘!’); >else if (~text.indexOf(«здравст»)) < bot.sendMessage(chatId, ‘Здравствуй, здравствуй, ‘ + first_name + ‘!’); >else if (~text.indexOf(«дур»)) < bot.sendMessage(chatId, » + first_name + ‘, не ругайся, а то обижусь!’); >else if (~text.indexOf(«туп»)) < bot.sendMessage(chatId, » + first_name + ‘, не ругайся, а то обижусь!’); >else if (~text.indexOf(«класи»)) < openClassik(chatId, first_name); >else if (~text.indexOf(«класси»)) < openClassik(chatId, first_name); >else if (~text.indexOf(«про автора»)) < bot.sendMessage(chatId, ‘Про автора бота’, < reply_markup: < inline_keyboard: [ [ < text: ‘Автор’, url: ‘https://polyakovdmitriy.ru’ >], [ < text: ‘Классика’, callback_data: ‘classik’ >] ] > >) > else < bot.sendMessage(chatId, » + first_name + ‘, я тебя не понимать!’); >> bot.forwardMessage(chatId, idAdmin, msg.message_id); >); bot.onText(//start/, (msg, match) => < const chatId = msg.chat.id; bot.sendMessage(chatId, ‘Приветик, ‘ + msg.chat.first_name + ‘!’); openKlava(chatId); >); bot.on(‘callback_query’, (query) => < const chatId = query.message.chat.id; if (query.data === ‘classik’) < openClassik(chatId, query.message.chat.first_name); >>); bot.on(‘contact’, (msg) => < const chatId = msg.chat.id; bot.sendMessage(chatId, ‘Спасибо! Ваш заказ принят, мы с Вами свяжемся!’); >); function openClassik(chatId, first_name) < fs.readdir(‘./klasik/’, function(err,files) < const rf = files[Math.floor(Math.random()*files.length)]; bot.sendMessage(chatId, » + first_name + ‘, лови классическую музыку!’); bot.sendAudio(chatId, ‘./klasik/’ + rf).then(()=>< bot.sendMessage(chatId, ‘И слушай!’); >); >) > function openKlava(chatId) < bot.sendMessage(chatId, ‘Клавиатура открыта’, < reply_markup: < keyboard: [ [ < text: ‘Классика’ >, < text: ‘Закрыть’ >], [ < text: ‘Заказать разработку бота’, request_contact: true >], [ < text: ‘Про автора’ >] ], one_time_keyboard: true > >) >

Структура проекта получилась такая:

Успехов в создании ботиков!

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

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