Как установить Telegram bot api

Для начала, обновим репозитории ОС до актуальной версии и установим данные обновления:

apt update
apt upgrade

Для работы Python-бота, на сервер необходимо установить Python. Вводим следующую команду:

apt install python3-pip python-is-python3

Введем следующую команду для проверки версии Python:

версия python

Если у Вас вышло подобное окошко, значит Вы корректно установили Python на VPS сервер. Теперь, для нашего бота необходимо установить библиотеку pytelegrambotapi, для того, чтобы связать запросы с нашего VPS сервера с серверами Telegram:

pip install pytelegrambotapi

Теперь можно загрузить сам бот. Для этого используем команду wget:

wget https://raw.githubusercontent.com/Sullik/testbot/main/bot.py

После этого, откроем файл в текстовом редакторе nano:

nano bot.py

user_id в Телеграмме

ChatGPT В Питоне. Создаем телеграм бота при помощи OpenAI ChatGTP Python

Далее Вам бот предоставит user_id, как на скриншоте ниже.

Необходимо снова открыть файл bot.py на сервере и внести некоторые изменения:

nano bot.py

В поле bot = telebot. TeleBot(«bot_token») вместо «bot_token» вставляем токен бота, который Вам предоставил Telegram.

В поле user_id = XXXXXXXXX все X-ы заменяем на Ваш user_id.

После этого, необходимо сохранить изменения. Для этого вводим следующие комбинации клавиш:

Ctrl + O — записать изменения

Ctrl + X — выйти из редактора nano.

Для удобства использования бота, создадим системную службу telegrambot.

Для этого вводим следующие команды:

touch /etc/systemd/system/telegram-bot.service
(создаем файл telegram-bot.service)
chmod 664 /etc/systemd/system/telegram-bot.service
(задаем верные права для файла)

Далее добавляем следующие строчки в файл /etc/systemd/system/telegram-bot.service:

nano /etc/systemd/system/telegram-bot.service

[Unit]
Description=Telegram bot
After=network.target
[Service]
ExecStart=/usr/bin/python3 /root/bot.py
[Install]
WantedBy=multi-user.target

В ExecStart указываем интерпретатор, который хотим использовать (в нашем случае /usr/bin/python3), а далее полный путь до самого скрипта (/root/bot.py). После этого перезагрузим конфигурацию systemd и добавим нашу службу telegram-bot в автозагрузку:

systemctl daemon-reload
systemctl enable telegram-bot.service

Проверим работу службы telegram-bot с помощью следующей команды:

systemctl status telegram-bot.service

проверка работы телеграмм бота в консоли

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

проверка работы телеграмм бота в телеграмме

Разработка Telegram Bot на Python. (0.1 — Разбираем API Telegram)

Бот успешно заработал на VPS сервере.

Смотрите подборку лучших VPS в России на нашем сайте.

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

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

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

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

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

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

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

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

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

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

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

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

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

/newbot

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

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

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

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

Еще по теме:  Телеграм премиум Apple id

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

Создаем Telegram бота на Python часть-1

Создаем Telegram бота на Python часть-1

10.09.2019

10800

Рейтинг: 5 . Проголосовало: 7
Вы проголосовали:
Для голосования нужно авторизироваться

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

Часть 1: Регистрация нового Telegram Bot-а

После начала общения с этим ботом, нажав /start, вы получите ответ от бота с указанием его возможностей. Нас интересует создание нового бота — /newbot.

После того как мы введем /newbot нас попросят придумать имя для нашего нового бота. Пусть оно будет MyFirstTestBot.

Далее нам нужно придумать юзернэйм для нашего бота. В нашем случае это будет mft001_bot.

После этого BotFather высылает нам специальный токен:

Наш токен оказался: 851216368:AAG6_JHHsIqAK-lX2CxOWQHTAM109zdrcZM (В вашем случае токен будет другой.)

Этот токен понадобится нам при настройке нашего бота. Токен должен быть сохранён. Именно он является единственным ключем для взаимодействия с ботом.

Также мы получаем ссылку на нашего бота. В моем случае это t.me/mft001_bot.

Теперь наш Tekegram-бот создан. Мы можем начать настраивать своего бота, например, установить изображение для бота, изменить или добавить описание бота и тп.

Тема связана со специальностями:

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

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

Часть 2 Написание кода

Как и написано выше мы будем создавать нашего бота на языке Python. Установите его с официального сайта, если вы используете Windows или выполните команду в терминале на Linux:

sudo apt-get install python python-pip

Далее воспользуемся системой управления пакетами PIP, которая используется для установки и управления программными пакетами, и установим библиотеку PyTelegramBotAPI (Telebot):

pip install pytelegrambotapi – user

Создадим логику работы нашего бота. Используя полноценный IDE или простой текстовый редактор создадим файл ourbot.py и заполним его необходимой логикой.

Для начала нам нужно выполнить импорт библиотеки PyTelegramBotAPI (Telebot), написав в нашем файле:

import telebot

Далее подключим нашего бота, используя полученный ранее токен:
bot = telebot.TeleBot(‘851216368:AAG6_JHHsIqAK-lX2CxOWQHTAM109zdrcZM’)

Теперь создадим метод, для получения сообщений.

Возможности PyTelegramBotAPI позволяют отправлять боту аудио (content_types=[‘audio’), видео (content_types=[‘video’), документы (content_types=[‘document’), текст (content_types=[‘text’), географический адрес (content_types=[‘location’), данные контакта (content_types=[‘contact’) и стикеры (content_types=[‘sticker’). Мы, для простоты опыта, будем общаться с ботом только текстом:

def handle_text_messages(message):

Теперь рассмотрим логику обработки наших текстовых сообщений. Мы хотим захардкодить простое общение бота с пользователем: бот должен уметь здороваться, когда с ним здороваются, уметь отвечать на вопросы «Кто ты?», «Как тебя зовут?» и «Что ты умеешь?».

Видео курсы по схожей тематике:

WCF Базовый

HighLoad++ 2017. Архитектуры/масштабируемость, бекенд, enterprise-системы

HighLoad++ 2017. Архитектуры/масштабируемость, бекенд, enterprise-системы

if message.text == «Привет»:
bot.send_message(message.from_user.id, «Привет»)
elif message.text == «Кто ты?»:
bot.send_message(message.from_user.id, «Я тестовый чатбот для учебного примера.»)
elif message.text == «Как тебя зовут?»:
bot.send_message(message.from_user.id, «Меня зовут MyFirstTestBot.»)
elif message.text == «Что ты умеешь?»:

bot.send_message(message.from_user.id, «Я умею отвечать на несколько простых вопросов — кто я, как меня зовут и что я умею делать.»)

bot.send_message(message.from_user.id, «Я тебя не понимаю. Напиши что-то другое.»)

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

bot.polling(none_stop=True, interval=0)

Задачей этого метода является создание потока, в котором бот отправляет запросы на сервер, уточняя таким способом, не писал ли ему кто-то сообщение. Параметр none_stop: False означает, что наша программа будет продолжать отправлять запросы на сервер после получения сообщения об ошибке от сервера Telegram.

Сохраним наш код:

Мы можем протестировать работу нашего бота, запустив его код в той IDE, в которой мы писали. И написав нашему боту в мессенджере.

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

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

Резюме

Как мы увидели, создание работающего бота на Python для Telegram мессенджера достаточно просто. Для простых ботов не нужно использовать сложные решения — есть удобная библиотека PyTelegramBotAPI, позволяющая решить такие задачи. В нашем учебном примере мы рассмотрели только работу с текстом, но, благодаря этой библиотеке, бот может работать и с другими форматами данных. Попробуйте сами сделать своего бота, отвечающего на ваши вопросы.

Бесплатные вебинары по схожей тематике:

Scrum - быстрое знакомство с методологией гибкой разработки ПО

Scrum — быстрое знакомство с методологией гибкой разработки ПО

Как правильно создать CV Junior разработчику

Как правильно создать CV Junior разработчику

Как стать Java разработчиком.

Как стать Java разработчиком.

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

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

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