Установка Telegram bot api

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

Итак, предположим у вас есть один или несколько простых ботов, помимо требуемой мощности важно на каком языке и для какой платформы написан бот. Так как для всех языков невозможно предусмотреть единую инструкцию, будет рассмотрен наиболее распространённый вариант с ботом, написанным на Python.

How to run your own local Telegram Bot API server in Python [PTB v13]

В разделе заказа сервера выбираем:

  • Московский дата-центр
  • Минимальные характеристики CPU, RAM, диск – HDD
  • Шаблон сервера – “Установить чистую ОС”
  • Операционную систему Debian 10 (если бот кроссплатформенный, а не заточен под конкретную ОС)

Или просто воспользуйтесь этой ссылкой для заказа идентичной конфигурации.

Начинаем настройку

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

В списке “Мои серверы” на нашем портале необходимо найти пароль администратора сервера. Этот пароль постоянно лучше нигде не хранить, записать его можно временно на период проведения настроек, а потом удалить. Он больше не пригодится, но в случае необходимости его всегда можно посмотреть на портале.

Для настройки вашего сервера необходима программа удалённого управления (терминал), если у вас нет такого ПО, то можно установить широко известный терминал Putty.

Запускаем терминал и в настройках для подключения вводим IP-адрес вашего сервера, который указан в информации о сервере на портале. Порт подключения менять не надо (22, стандартный для SSH). Нажимаем подключиться, “Open”. Если появится текст, предлагающий ввести данные для входа, то всё было указано правильно.

Вводим имя администратора root, нажимаем ENTER и вводим пароль администратора, ENTER. При вводе пароля не будет отображаться никаких символов, так должно быть. Для вставки пароля из буфера обмена нужно нажать правой клавишей мыши в любом месте окна терминала.

После правильного ввода данных появится приглашение системы.

Добавляем учетную запись администратора

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

Обновляем компоненты системы.

Устанавливаем сервис sudo, который нужен для выполнения команд администратора без логина под учётной записью root.

apt install sudo -y

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

apt install curl -y

Добавляем нового пользователя с любым именем.

Кроме создания пароля для нового пользователя, система может попросить указать дополнительные сведения о пользователе, их можно оставить пустыми, нажав ENTER.

Далее предоставляем новому пользователю возможность вызывать команды администрирования.

usermod -aG sudo johnwho

Переключаемся на нового пользователя.

На запрос пароля вводим только что созданный пароль для нового администратора johnwho.

Должно появиться приглашение:

Проверяем наличие административных прав

Если система выдала список неких файлов, а не ошибку, то второй администратор был создан успешно.

Далее необходимо зайти на ваш сервер от имени нового администратора.

Закрываем программу удалённого доступа и запускаем её заново, вводим адрес сервера, подключаемся и на этапе логина вводим имя нового администратора и его пароль.

Теперь можно отключить возможность удалённого входа от имени root.

Запускаем редактирование настроек удалённого доступа.

sudo nano /etc/ssh/sshd_config

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

Откроется текстовый файл настроек, листаем стрелками вниз до параметра “PermitRootLogin yes”, который необходимо поменять на:

Еще по теме:  Имя пользователя имени лиана в Телеграмме

Выходим нажатием CTRL+x, редактор спросит сохранять ли изменения? Вводим Y. На запрос имени файла нажать ENTER, чтобы сохранить изменения в прежний файл.

Перезапускаем сервис удалённого управления

sudo systemctl restart sshd

Если после этого оборвётся связь, надо снова подключиться от имени нового администратора.

Настраиваем firewall

Устанавливаем удобный брандмауэр UFW.

sudo apt install ufw

Если происходило переподключение, то система запросит пароль нового администратора.

Установим защиту от брутфорса паролей:

sudo apt install -y fail2ban

Запрещаем все входящие подключения.

sudo ufw default deny incoming

Делаем исключение для удалённого управления.

sudo ufw allow ssh

Разрешаем все исходящие подключения.

sudo ufw default allow outgoing

sudo ufw enable

На запрос подтверждения вводим “y”.

Проверяем правильность настройки.

sudo ufw status verbose

Правильный вывод выглядит следующим образом:

Готовим систему для запуска бота

Далее необходимо создать пользователя, от имени которого будет работать бот. Это позволит не бояться за сервер, и в случае необходимости проведения дополнительных настроек разработчиком, можно не опасаясь предоставить пароль этого пользователя. Если разработчик попросит дополнительно предоставить доступ администратора для установки, например, ПО для базы данных, то не забудьте потом посмотреть историю его действий под администратором командой “history”, а потом поменять пароль второго администратора. Доступ к root при наличии доступа к дополнительному администратору адекватный разработчик просить не должен.

Добавляем нового пользователя (имя произвольное)

sudo adduser telegrambot

Закрываем терминал и заходим уже под новым пользователем.

Создаём папку для хранения файлов бота

Переходим в эту папку

Далее необходимо скопировать файл(ы) бота на сервер.

Под Windows это проще всего сделать встроенной утилитой pscp, открываем командную строку cmd. И там вводим команду, в которой нужно скорректировать следующее: путь к файлу бота, имя пользователя для бота, IP-адрес сервера.

Утилита спросит пароль, надо ввести пароль от пользователя telegrambot.

Переходим в окно удалённого управления сервером и проверяем появление файла.

Если бот содержит множество файлов, то для копирования удобнее будет использовать программу WinSCP. Подключение осуществляет по тому же адресу и порту, с тем же пользователем, что и в случае с терминалом.

Установка Python

Переходим в каталог для временных файлов.

Скачиваем скрипт установки Miniconda. Это менеджер пакетов Python, его установщик автоматически установит интерпретатор Python, нужный для запуска самого бота.

curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

Запускаем скрипт скачивания-установки

Пролистываем лицензию клавишей ENTER. На запрос принятия лицензии отвечаем yes. Соглашаемся на путь установки по умолчанию, на предложение инициализировать отвечаем yes.

Закрываем терминал и запускаем снова, подключаемся обратно пользователем telegrambot. Без переподключения команда python будет недоступна.

Проверяем правильность установки Python

Если всё сделано верно, то появится номер версии Python.

Запуск бота

Переходим в каталог с файлами бота.

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

Поскольку для функционирования ботов нужны сторонние библиотеки, появится ошибка такого типа:

ModuleNotFoundError: No module named ‘pyrogram’

Это означает, что надо установить недостающие библиотеки.

Если в комплекте с ботом разработчик положил файл requirements.txt, то этот файл содержит список необходимых библиотек и их можно установить одной командой:

pip install -r requirements.txt

Иначе необходимо последовательно выполнять установку недостающих библиотек, используя команду pip install:

pip install module_name

, где module_name это название очередного недостающего модуля из ошибки

ModuleNotFoundError: No module named ‘module_name’

Возможен редкий вариант, что имя модуля в программе не соответствует имени для установки, правильную команду подскажет гугл по запросу “pip имя_модуля”.

Если всё получилось, необходимо перезапустить скрипт бота в фоновом режиме. Дело в том, что при запуске командой “python telebot.py”, бот работает как простое приложение, и при закрытии терминала, система его завершит.

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

nohup python telebot.py https://ruvds.com/ru/helpcenter/telegram-bot-dlya-ruvds/» target=»_blank»]ruvds.com[/mask_link]

Telegram API Bot

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

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

Элементы управления

В Бот Телеграмм API все элементы управления представляют собой объекты, которые представлены в JSON, то есть в виде строки, заданной по определенным правилам. Это позволяет производить обмен данными по сети максимально быстро и наименее затратно, так как передается не программный код, а набор пар «ключ:значение» в текстовом виде. В таблице приведены все типы API. Большая часть объектов предназначена для создания команд бота. Ключи дадут более расширенное представление о возможностях объекта.

Название Описание Ключи
User Пользователь в Телеграмм id
first_name
last_name
username
Chat Чат id
type
title
username
first_name
last_name
all_members_are_administrators
Message Сообщение message_id
from
date
chat
forward_from
forward_date
reply_to_message
text
entities
audio
document
photo
sticker
video
voice
caption
contact
location
venue
new_chat_member
left_chat_member
new_chat_title
new_chat_photo
delete_chat_photo
group_chat_created
supergroup_chat_created
channel_chat_created
migrate_to_chat_id
migrate_from_chat_id
pinned_message
MessageEntity Отдельная сущность в текстовом сообщении (хештег, ссылка и пр.) type
length
url
offset
PhotoSize Изображение заданного размера или превью фото, файла или стикера file_id
width
height
file_size
Audio Аудиозапись file_id
duration
performer
title
mime_type
file_size
Document Любой файл, не являющийся изображением, аудиозаписью или голосовой записью file_id
thumb
file_name
mime_type
file_size
Sticker Стикер file_id
width
height
thumb
file_size
Video Видеозапись file_id
width
height
duration
thumb
mime_type
file_size
Voice Голосовое сообщение file_id
duration
mime_type
file_size
Contact Телефонный контакт phone_number
first_name
last_name
user_id
Location Точка на карте longitude
latitude
Venue Объект на карте location
title
address
foursquare_id
UserProfilePhotos Фото профиля пользователя total_count
photos
File Готовый к загрузке файл file_id
file_size
file_path
ReplyKeyboardMarkup Клавиатура с возможностью ответа keyboard
resize_keyboard
one_time_keyboard
selective
KeyboardButton Кнопка клавиатуры для ответа text
request_contact
request_location
ReplyKeyboardHide Заменяет клавиатуру бота на стандартную клавиатуру Telegram hide_keyboard
selective
InlineKeyboardMarkup Встроенная клавиатура, появляющаяся под сообщением inline_keyboard
InlineKeyboardButton Одна кнопка на встроенной клавиатуре text
url
callback_data
switch_inline_query
switch_inline_query_current_chat
callback_game
CallbackQuery Входящий запрос обратной связи для встроенной кнопки с заданным параметром callback_data id
from
message
inline_message_id
data
ForceReply Эмулирует действия пользователя: выбор сообщения и нажатия кнопки «Ответить» force_reply
selective
ResponseParameters Сообщает, почему запрос не выполнился успешно migrate_to_chat_id
retry_after
Еще по теме:  Долбограм на Телеграм это

Результирующие строки, которые присылает мессенджер, представлены в виде тех же объектов API.

Обмен сообщениями происходит в виде запросов. В следующей таблице приведены примеры некоторых из них.

Метод Действие
getMe Позволяет получить информацию о пользователе
sendMessage Отправляет сообщение
sendPhoto Отправляет фото
sendAudio Отправляет аудио
sendDocument Отправляет документ
sendVideo Отправляет видео
sendContact Отправляет контакт
getUpdates Получает обновления из чата

Все методы (а их достаточно много) делятся на группы:

  1. Получение обновлений и информации.
  2. Работа в чате.
  3. Отправка различных элементов.
  4. Работа со стикерами.
  5. Обновление сообщений.
  6. Режим inline.
  7. Платежный функционал.
  8. Для игр.

Полной документации Telegram Bot API на русском пока не существует. Однако стандартный перевод в браузере Google Chrome прекрасно справляется с задачей.

Языки программирования

Telegram API поддерживается множеством языков программирования. Это дает возможность выбора создателю.

Любители JavaScript могут использовать Node.js Telegram Bot API. Здесь необходимо знание не только языка, но и умение обращаться с этим фреймворком, превратившим клиентский язык в полноценный серверный интерфейс.

Одним из самых популярных для написания ботов с использованием Telegram Bot API является PHP. Этот язык изначально был предназначен для создания серверных web-приложений. Он отличается простотой, логичностью и специализированностью именно для web-среды.

Часто используется Telegram Bot API в Python. Этот язык отличается минимализмом и достаточно прост в изучении. Он очень популярен за счет своей производительности.
Классикой является применение Telegram Bot API в С++. Язык нельзя назвать простым, но он является базой, на которой были созданы все остальные вышеперечисленные ЯП. Соответственно в нем не заложена определенная специализация. Инструменты позволяют создавать любые приложения.

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

Кроме объектов API имеет набор методов, которые позволяют отправлять сообщения, файл, фото стикеры, редактировать и многое другое. Все эти команды можно найти в описании API на официальном сайте.

Все запросы имеют вид:

https://api.telegram.org/bot/КОМАНДА

Всего существует 4 способа подачи запроса:

  1. Запрос в URL
  2. application/x-www-form-urlencoded
  3. application/json (не подходит для загрузки файлов)
  4. multipart/form-data (для загрузки файлов)

Доступны как GET, так и POST запросы.

Самый простой способ попробовать команды API – адресная строка в браузере. Зайдите в свой бот в web-версии или с мобильного устройства. Затем в браузере наберите команду:

В результате в окне появится JSON-строка

В браузере появится строка

А в чате Телеграмм вы увидите приветствие от созданного робота.

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

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

Создаем бота в BotFather: инструкция, команды, настройки

BotFather – «бот над всеми ботами» в Телеграмме. БотФазер представляет собой интерфейс доступа к API (Application Programming Interface) мессенджера Telegram. С помощью BotFather вы можете создавать ботов и управлять существующими.

Что такое бот в Телеграмме и чем отличается от обычного пользователя?

  1. Для создания бота не нужен номер телефона (с декабря 2022 Телеграмм убрал это требование и для обычных юзеров).
  2. Нет статуса «онлайн» или «последний визит». Вместо этого прописывается «бот».
  3. Bot не может сам начать общение с пользователем. Но юзеры могут вызвать его в чате.
  4. Имя пользователя должно заканчиваться на «bot».
  5. У ботов в Телеграмме ограниченное облачное хранилище (cloud storage), поэтому старые сообщения удаляются после их обработки.

В официальной документации Телеграмма указано, что пользователи и разработчики создали более 10 млн ботов.

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

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

Чтобы сделать бота в Telegram без кода и навыков программирования, необходимо:

Находим аккаунт BotFather

В диалоговом окне указываем команду /start, чтобы запустить сервис. Система показывает доступные команды (редактирование бота, настройки, игры). Вписываем /newbot, чтобы запустить процесс создания.

Система просит указать название (к примеру, в нашем случае ChatLabs_bot). После этого необходимо вписать username – BotFather сразу предупреждает, что юзернейм бота должен заканчиваться на слово bot. Вписываем ChatLabs_bot.

Еще по теме:  Звонки в Телеграм за границу платны ли

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

Регистрируем юзернейм бота

На этом этапе вы получаете токен для доступа к HTTP API Telegram. Не передавайте token третьим лицам.

Все! Вы создали бота для Телеграма при помощи БотФазера. В информационном сообщении найдете ссылку на него (в нашем примере это t.me/ChatLabs_bot).

Если перейти по урлу, увидите бота.

Получаем ссылку на нашего бота

Чтобы начать работу с ним, нажмите «Старт».

Создать бота в Телеграме самостоятельно и без навыков программирования можно. Но если вы хотите добавить кастомные функции (вывод погоды, показ курса валют, близлежащих заведений и так далее), то необходимо написать код. К примеру, мы в ChatLabs используем Python и реализуем для заказчиков проекты любой сложности.

Создавали бота доставки еды (интеграция с iiko, прием оплат, уведомление пользователя о статусе заказа), бота для дилера напольных покрытий (добавление партнеров через 1С, просмотр остатков на складе, поиск аналогов, работа с корзиной), чат-бота для службы такси (заказ авто на определенное время, заявки на работу для водителей и другие). Предлагаем посмотреть примеры решений для интернет-магазина, стартапа, мероприятия.

Чтобы посмотреть список ваших ботов, просто задайте команду /mybots. В диалоговом окне увидите названия.

Выбираем бота из списка

Команды BotFather: редактирование и удаление ботов в 2023 году в 1 клик

Выше мы уже разобрали 2 основные команды БотФазера:

  • /newbot – создание нового бота;
  • /mybots [beta] – получение списка существующих.

Редактирование ботов осуществляется командами:

  1. /setname – выбрать имя (или изменить его). Это то, что будет отображаться в диалоговом окне.
  2. /setabouttext – добавить приветствие. Это тот текст, который будет видеть пользователь до того, как нажмет на «START» для запуска.
  3. /setdescription – указать описание (если нужно). Дескрипшен будет виден в профиле. Как правило, в описании перечисляют, как работает бот, для чего создан, какие правила.
  4. /setuserpic – установить фото / аватар. Обратите внимание, что есть 2 вида: ботпикча и дескрипшен-пикча. Первый используется как аватар. Второй появляется в блоке What can this bot do. В качестве дескрипшен-фото принимаются и GIF (требования к разрешению фото – 640×360, ограничения по гифкам – 320×180, 640×360 or 960×540).
  5. /setcommands – установить список команд, которые будут доступны для использования. Система просит прописать их в формате «command1 — Description» (т.е. «команда – описание»). На практике это выглядит как Buy – купить, Order – заказать.
  6. /deletebot – удалить бота. Сделать это в 1 клик не получится. Система получает команду, затем просит вас еще раз подтвердить действие. Только после этого удаляет.

Управление настройками осуществляется при помощи команд BotFather. Интерфейс интуитивно понятный.

Команды BotFather

Настройки BotFather: токен, платежи, управление группами, передача прав и другие

Основные настройки BotFather

Вы можете задать команду /mybots, выбрать нужного и использовать кнопки управления.

Кнопки управления ботом

API token в Телеграм от BotFather: как получить и сгенерировать новый

Чтобы увидеть токен для доступа к API Telegram, кликаем на «API token». Система автоматически покажет уникальную комбинацию из букв, цифр, знаков препинания.

Если старый токен попал в руки мошенников или был утерян, используйте команду «Revoke current token».

Bot Settings в Telegram от BotFather: добавление в группы, права админа, privacy mode и другие

Дополнительные настройки чат-бота

В каждой из вкладок находятся дополнительные настройки.

  1. «Allow Groups?» – можно или нельзя добавлять бота в группы.
  2. «Group Privacy» – активирует или деактивирует режим конфиденциальности «Privacy mode».
  3. «Group Admin Rights» – какие права у администратора (добавлять новых администраторов, приглашать новых пользователей, удалять сообщения, банить / разбанить юзеров, управлять голосовыми, а также другие).
  4. «Channel Admin Rights» – аналогично предыдущему, но касается прав администратора канала.
  5. «Domain» – привязать веб-сайт, чтобы использовать виджет входа в Telegram.
  6. «Payment» – список доступных платежных систем для вашего бота (Юкасса, Сбербанк, PayMega, CasCad, iPay88, Робокасса и другие). Доступно более 15 методов проведения платежей для 200+ стран мира.

Чтобы передать Телеграмм-бота другому лицу, используйте «Transfer ownership». В новом окне необходимо будет указать логин рецепиента – того, кому передаете бота.

Подключение платежных систем в Телеграмм бота

Что такое Inline mode (инлайн мод) в ботах Телеграмм?

Режим встроенных запросов для взаимодействия с ботом.

Классический вариант – команды через кнопки или ввод /mybots и тому подобных.

Чтобы активировать опцию, задаем команду БотФазеру /setinline. Дальше указываем текст-заполнитель, который будет показываться в поле ввода после указания имени бота.

Inline mode в чат боте

Inline mode в Telegram поддерживает 20+ типов контента, среди которых:

Вот как это выглядит в Телеграмме:

Добавление контента в Inline mode

Как сделать игру в Телеграмм: кнопки BotFather и настройки развлечений

Настройки БотФазера позволяют создавать HTML5-игры, а затем предлагать их в группе или приватных чатах. Типичные примеры – викторины, шашки и шахматы, а также другие. Список команд BotFather, которые используются для создания, редактирования, просмотра и удаления игр.

Создание игр в Телеграмм

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

Теперь вы знаете основные кнопки BotFather и настройки для управления ботами. Чтобы наш ChatLabs_bot заработал полноценно, необходимо взаимодействовать с Telegram Bot API и писать код.

Забирай бесплатный чек-лист

«ТОП-10 ошибок
при создании Чат-бота»

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

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