Как-то, очередным одиноким вечером, мне стало скучно и захотелось поговорить (Ох уж эти социальные потребности человеков). Что ж, пришлось сделать для этого бота.
Купились? Ха! На самом деле мне конечно же есть с кем поговорить ( нет ), просто тема с телеграмом и ботами обошла меня стороной, потому что у меня никогда не было аккаунта (не было надобности), а тут по работе приходится там “чатиться”, ну раз произошло такое, что я обзавёлся акком, значит пришла пора изучить “телегу” чуть лучше чем никак. Вообще, очень давно, в далёких 2000-ых я пользовался ICQ (исключительно по работе) и там я писал бота на перле; самый простой эхо-бот, который отвечал заранее вбитыми в него фразами. У этого бота было одно великое предназначение, жаль, что всё провалилось… ну да ладно, в сторону горькое прошлое, приступим к изучению матчасти!
С чего начать?
Конечно же с чтения RTFM, НО так как букоф много, а времени мало – смело кладём хер на доку по API и следуем step-by-step за аффтором пока он жжот.
How to install Telegram on CentOS 7
И так, для приготовления бота нам понадобятся следующие ингредиенты:
- Centos 7
- python3. Ну типа, 2k18 на пороге, а через 2 года поддержка python2.7 будет окончена, пора нехотя переползать на третью ветку…
- python virtual env. К сожалению, centos7 ещё не готов к python3, а особенно скудные репозитории redhat, поэтому нам придётся тащить модули из гита/pip’ом, НО чтоб в хламьё не зафоршмачить всем этим говном систему; чтоб не бороться одним тоскливым вечером с неразрешаемыми зависимостями при обновлении; чтоб не сидеть с грустной миной перед монитором после того, как зависимости разрешили, но скрипты больше не работают; чтоб избежать всех этих и других факапов – мы будем использовать виртуальные окружения змеюки.
- pytelegrambotapi. Собсно, это либа для общения с telegram api коих херова тонна и, вобщем-то, можно даже без неё обойтись, но-о-о как я уже писал ранее – букаф много, времени мало, и поэтому я делегирую транспорт опытным программистам, авторам модуля, которые знают как лучше наладить общение между ботом и api.
Вобщем-то это всё, ну не исключая конечно же холодной головы, горячего сердца, здравого рассудка и щепотки фантазии. Приступим!
Понеслася!
yum install epel-release
Далее нам понадобится пакет python34-devel.x86_64 в составе которого, помимо прочего нам ненужного хлама, есть тот самый pyenv о котором я писал ранее в ингредиентах и pip при помощи которого мы поставим нужный нам модуль для общения с api telegramm.
yum install python34-devel.x86_64
Создаём директорию в которой будут храниться ваши вирутальные окружения в расчёте: один скрипт – одно окружение.
mkdir -p /usr/local/sbin/venvs cd «$_»
Установка Telegram Desktop в CentOS
Telegram — простой, быстрый, безопасный мессенджер. Одно из 10 самых скачиваемых приложений в мире с более чем 500 миллионами активных пользователей.
Приемущества Telegram
Telegram — самое быстрое приложение для обмена сообщениями на рынке, соединяющее людей через уникальную распределенную сеть центров обработки данных по всему миру.
Установка и настройка CentOS в VirtualBox
- Вы можете получить доступ к своим сообщениям со всех своих телефонов, планшетов и компьютеров одновременно. Приложения Telegram являются автономными, поэтому вам не нужно держать телефон подключенным. Начните печатать на одном устройстве и закончите сообщение на другом. Никогда больше не теряйте свои данные.
- Вы можете отправлять медиа и файлы без каких-либо ограничений по их типу и размеру. Вся история ваших чатов не займет места на диске вашего устройства и будет надежно храниться в облаке Telegram до тех пор, пока она вам нужна.
- Все в Telegram, включая чаты, группы, медиа и т.д., шифруется с помощью комбинации 256-битного симметричного шифрования AES, 2048-битного шифрования RSA и безопасного обмена ключами Диффи-Хеллмана.
- Telegram имеет полностью документированный и бесплатный API для разработчиков, приложения с открытым исходным кодом и проверяемые сборки, чтобы доказать, что приложение, которое вы загружаете, создано из точно такого же исходного кода, который опубликован.
- Вы можете создавать групповые чаты с количеством участников до 200 000, обмениваться большими видео, документами любого типа (.DOCX, .MP3, .ZIP и т.д.) объемом до 2 ГБ каждый и даже создавать ботов для выполнения определенных задач.
- Telegram — это самая надежная система обмена сообщениями, созданная для доставки ваших сообщений с использованием минимального количества данных. Он работает даже на самых слабых мобильных соединениях.
- Telegram имеет мощные инструменты для редактирования фото и видео, анимированные стикеры и эмодзи, полностью настраиваемые темы для изменения внешнего вида вашего приложения, а также открытую платформу стикеров/GIF для удовлетворения всех ваших выразительных потребностей.
- Предоставляя беспрецедентный набор функций, мы заботимся о чистоте интерфейса. Telegram настолько прост, что вы уже знаете, как им пользоваться.
- Вы можете удалить любое сообщение, которое вы когда-либо отправляли или получали, для обеих сторон, в любое время и без следа. Telegram никогда не будет использовать ваши данные для показа вам рекламы.
Включение snaps в CentOS и установка Telegram Desktop
Snaps — это приложения, упакованные со всеми зависимостями для запуска на всех популярных дистрибутивах Linux из одной сборки. Они автоматически обновляются и плавно откатываются назад.
Snap доступен для CentOS 7.6+ и Red Hat Enterprise Linux 7.6+ из репозитория Extra Packages for Enterprise Linux (EPEL). Репозиторий EPEL может быть добавлен в вашу систему с помощью следующей команды:
sudo yum install epel-release
Теперь Snap можно установить следующим образом:
sudo yum install snapd
После установки необходимо включить блок systemd, который управляет главным коммуникационным сокетом snap:
sudo systemctl enable —now snapd.socket
Чтобы включить поддержку классического snap, выполните следующие действия для создания символической ссылки между /var/lib/snapd/snap и /snap:
sudo ln -s /var/lib/snapd/snap /snap
Выйдите из системы и войдите снова, или перезагрузите систему, чтобы убедиться, что пути snap обновлены правильно.
Установите ядро snap
sudo snap install core
Чтобы установить Telegram Desktop, просто выполните следующую команду:
sudo snap install telegram-desktop
Источник: g-soft.info
Установка telegram в centos
Telegram очень популярен в мире и позволяет не только общаться, но и участвовать в дискуссиях. Сегодня я решил интегрировать Telegram с Asterisk. Сейчас я использую Gtalk для получения уведомлений о том, что кто-то звонил мне и получаю доступ к записи автоответчика на своем сервере по URL. Выглядит это примерно вот так:
Теперь я хочу проделать то же самое с Telegram.
Итак установим пакет telegram-cli на CENTOS 6 для доступа к моему аккаунту telegram через linux CLI .
Установка Telegram-cli CENTOS 6.X
Telegram-cli использует Python 2.7 или выше, а CENTOS 6.X по-умолчанию использует версию Python 2.6 поэтому первым шагом обновим версию Python до 2.7. Проверить текущую версию python установленного у вас на сервере можно командой:
Установка Python 2.7:
yum groupinstall «Development tools»
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel
cd /usr/local/src/
wget —no-check-certificate https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz
tar xf Python-2.7.6.tar.xz
cd Python-2.7.6
./configure —prefix=/usr/localmake make alt install
(может понадобится установить symlink на новую версию Python )
cd /usr/local/src/ wget http://www.digip.org/jansson/releases/jansson-2.5.tar.gz
tar -zxf jansson-2.5.tar.gz
cd jansson*
./configure —prefix=/usr/ make clean make make install ldconfig
Установим другие необходимые для telegram-cli пакеты:
yum install lua-devel openssl-devel libconfig-devel readline-devel libevent-devel expect git
Скачаем и установим пакет telegram-cli:
git clone —recursive https://github.com/vysheng/tg.git cd tg
./configuremake
Настроим аккаунт в telegram-cli
/usr/local/src/tg/bin/telegram-cli -k /usr/local/src/tg/tg-server.pub -W
Теперь можно отправлять сообщения в Telegram с помощью команды msg. Например:
Круто, но нам нужно отправлять сообщения через консоль Linux и поэтому мы будем использовать Bash:
Bash скприпт для отправки сообщений/файлов в telegram через Linux CLI
Скрипт отправки сообщений в Telegram ( sendmsg.sh ):
#!/bin/bash
to=$1
msg=$2
tgpath=/usr/local/src/tg
cd $(echo «safe_quit») | $/bin/telegram-cli -k $/tg-server.pub -U root -W -e «msg $to $msg»
Скрипт отправки файлов в Telegram ( sendfile.sh)
#!/usr/bin/expect
set timeout 2
set msg [lindex $argv 1]
set dest [lindex $argv 0]
spawn /usr/local/src/tg/bin/telegram-cli -k /usr/local/src/tg/tg-server.pub -W
expect «> »
sleep 10
send «rsend_file $dest $msgr»
expect «> «expect eof
Установим права доступа для скриптов
chmod +x sendmsg.sh
chmod +x sendfile.sh
3.4 — Проверим
./sendmsg [аккаунт telegram] «Hello my telephony Telegram »
./sendfile [аккаунт telegram] record.wav