Как выводить заявки из Телеграмм бота на почту питон

Решил немного погрузиться в изучение Python, в процессе поставил задачу отойти от стандартного Hello World и попытаться написать сразу простого бота для Telegram. В итоге, бот может отвечать на заданные фразы, присылать внешний ip адрес и делать снимок с камеры. Скажу сразу, код не идеальный, но в процессе отладки ни один котик не пострадал.

Для начала сразу оговорюсь писать будем на Python версии 3 и будем использовать модули для облегчения жизни нашего проекта.

python3 — V
Python 3.7.5

Пишем мы на Ubunru 19.10, поэтому надо учитывать, что есть две версии установленного Python.

Установим PIP и необходимые пакеты:

apt install python3 — pip
pip3 install pytelegrambotapi
pip3 install PySocks

PIP – система управления пакетами, которая используется для установки и управления программными пакетами.

pytelegrambotapi – нужен для работы с API Telegram

PySocks – прокси сервер, иначе бот не будет работать.

Как было указано выше, пишем мы на Ubuntu, поэтому в директории пользователя /home/users-name/ создаем файлы bot-file.py и config.py

Отправляем html форму с сайта на telegram + с документом на JavaScript


touch bot — file . py
touch config . py

Файл bot-file содержит код бота, а файл config необходим для конфигурации бота. В конфигурации необходимо будет указать список пользователей, которым разрешено взаимодействие с ботом.

Начнем с файла конфигурации, там все просто, необходимо просто указать id пользователя Telegram.

users = [ ‘id-user1’ , ‘id-user2’ ]

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

import config
import telebot
from telebot import apihelper
from telebot import types
import datetime
import logging
logger = logging . getLogger ( ‘log’ )
logger . setLevel ( logging . INFO )
fh = logging . FileHandler ( ‘someTestBot.log’ )
fh . setLevel ( logging . DEBUG )
formatter = logging . Formatter ( «%(asctime)s | %(levelname)-7s | %(message)s» )
fh . setFormatter ( formatter )
logger . addHandler ( fh )
### Прокси сервер
### Token telegram bot
bot = telebot . TeleBot ( ‘Token-bot’ , threaded = True )
### Функция проверки

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

Для создания отдельного клиента хорошо подойдет асинхронная библиотека «Telethon» (Вот репозиторий библиотеки). Сама библиотека может использоваться как для создания телеграм-ботов, так и для создания отдельных приложений работающих с API Telegram. Главным преимуществом является понятная документация в которой можно найти ответы на все вопросы (необходимо знание английского языка).

Создание нашего проекта начнем с регистрации аккаунта разработчика здесь

Регистрация разработчика

Вводим пришедший в Telegram численно-буквенный код и попадаем на страницу регистрации нового приложения. Заполняем форму, достаточно первых двух граф:

Парсинг телеграм-чатов отдельным приложением (часть 1), изображение №2

Если все введено верно вы увидите следующие сведения.

Парсинг телеграм-чатов отдельным приложением (часть 1), изображение №3

Сразу оговорюсь, данных будет немного больше, но нам важны параметры App api_id и App api_hash.

Поздравляю! Вы зарегистрировали ваше приложение в API Telegram. Закрывать страничку пока не стоит. Мы будем брать оттуда значения App api_id, App api_hash, Short_name для нашего приложения.

Переходим в PyCharm

Хорошим тоном будет не хранить в коде наш хэш и app_id, поэтому давайте сделаем красиво =) Используем библиотеку configparser для создания файла настроек. Создайте в корне проекта файл с расширением .ini (пример config.ini) и давайте поместим туда наши данные из аккаунта разработчика который мы зарегистрировали.

Еще по теме:  Что значит колокольчик в Телеграмме

Файл config.ini

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

Далее нас ждет самое интересное. Давайте установим в наш проект саму библиотеку Telethon командой «pip install telethon» и импортируем в проект класс TelegramClient из нашей установленной библиотеки.

import configparser from telethon import TelegramClient

Далее давайте настроим передачу наших данных в подключение из файла настроек

config = configparser.ConfigParser() config.read(«config.ini») # Присваиваем значения внутренним переменным api_id: str = config[‘Telegram’][‘api_id’] api_hash = config[‘Telegram’][‘api_hash’] username = config[‘Telegram’][‘username’] client = TelegramClient(username, api_id, api_hash) client.start()

Обратите внимание что в файле «config.ini» первой строкой мы указали [Telegram]. С помощью этих тэгов мы просто не будем путаться в переменных настроек и разделять их в одном файле.

Создадим нашу главную функцию и запросим у сервера телеграм сведения о нас.

async def main(): about_me = await client.get_entity(‘me’) print(about_me)

Наша библиотека Telethon асинхронная а значит функции и методы мы будем использовать с добавлением ключевых слов async и await (кстати можно и без них но не рекомендую)

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

with client: client.loop.run_until_complete(main())

Первый запуск

При первом запуске в консоли PyCharm вас попросит ввести ваш номер телефона или токен бота

Это нужно, что бы создать файл сессии он будет хранится в корне проекта с расширением .session ( удалять их не стоит о них поговорим позднее)

Вводите ваш номер телефона в международном формате без «+»

Вам снова пришел код в аккаунт телеграмм только теперь из 5 цифр. Введите их.

Поздравляю вы запустили ваш клиент Телеграм.

Так что же вернула нам наша функция main

about_me = await client.get_entity(‘me’)

наша переменная about_me теперь содержит объект User с специфическим типом данных библиотеки telethon.

Внутри объекта вы можете увидеть данные о вашем аккаунте.

Парсинг телеграм-чатов отдельным приложением (часть 1), изображение №7

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

async def main(): about_me = await client.get_entity(‘me’) print(‘Имя:’, about_me.first_name) print(‘Ник:’, about_me.username) print(‘Id’, about_me.id) print(‘Телефон’, about_me.phone)

Ну в вашем случае звездочек не будет.

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

Утечка данных из Telegram — проблема Telegram.

прим. автора

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

Полный код парсера Телеграм

import configparser from telethon import TelegramClient config = configparser.ConfigParser() config.read(«config.ini») # Присваиваем значения внутренним переменным api_id: str = config[‘Telegram’][‘api_id’] api_hash = config[‘Telegram’][‘api_hash’] username = config[‘Telegram’][‘username’] client = TelegramClient(username, api_id, api_hash) client.start() async def main(): about_me = await client.get_entity(‘me’) print(‘Имя:’, about_me.first_name) print(‘Ник:’, about_me.username) print(‘Id’, about_me.id) print(‘Телефон’, about_me.phone) with client: client.loop.run_until_complete(main())

Еще по теме:  Забыл пароль от дополнительной защиты Телеграмм на iPhone

Подпишитесь на рассылку

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

Простые боты для Telegram на Python в Google Colab

Рассмотрим разработку и запуск ботов для мессенджера Телеграм. В качестве языка разработки будет использоваться Python. Запускать код на выполнение будем в рабочих тетрадках (блокнотах) замечательной среды разработки Colab компании Google. Код бота, размещенный в Colab, будет взаимодействовать c сервером Telegram через API.

Telegram (от др.-греч. τῆλε «далеко» + др.-греч. γράμμα «запись») — кроссплатформенная система мгновенного обмена сообщениями (мессенджер) с функциями VoIP, позволяющая обмениваться текстовыми, голосовыми и видео- сообщениями, стикерами и фотографиями, файлами многих форматов. Также можно совершать видео- и аудио- звонки и трансляции в каналах и группах, организовывать конференции, многопользовательские группы и каналы. Клиентские приложения Telegram доступны для Android, iOS, Windows Phone, Windows, macOS и Linux.

API (МФА [ˌeɪ.piˈaɪ]; аббр. от англ. Application Programming Interface — «программный интерфейс приложения») — описание способов (набор классов, процедур, функций, структур или констант), которыми одна компьютерная программа может взаимодействовать с другой программой. Обычно входит в описание какого-либо интернет-протокола, программного каркаса (фреймворка) или стандарта вызовов функций операционной системы. Часто реализуется отдельной программной библиотекой или сервисом операционной системы. Используется программистами при написании всевозможных приложений.

Бот (англ. bot, сокращение от чеш. robot) — виртуальный робот, который функционирует на основе специальной программы, выполняющий автоматически и/или по заданному расписанию какие-либо действия через интерфейсы, предназначенные для людей. Боты находят также применение в условиях, когда требуется лучшая реакция по сравнению с возможностями человека (например, игровые боты, боты для интернет-аукционов и тому подобное) или, реже, для имитации действий человека (например, боты для чатов и тому подобное). Чат-бот может выдать достаточно адекватный ответ на вопрос, сформулированный на правильном русском языке (или любом другом, работа с которым поддерживается). Такие боты часто применяются для сообщения прогноза погоды, результатов спортивных соревнований, курсов валют, биржевых котировок и тому подобное.

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

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

Согласно текущей статистике за 2022 год, недвижимость является ведущей отраслью по прибылям от чат-ботов (28 %). Затем идут путешествия (16 %), образование (14 %), здравоохранение (10 %) и финансы (5 %).

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

Чат-боты можно использовать для поиска информации. Например, прогноз погоды, афиша мероприятий.

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

Практическая часть

Чтобы создать бота, нам нужно дать ему название, адрес и получить токен — цифро-символьную строку, которая будет однозначно идентифицировать бота.

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

Необходимо найти бота, нажать кнопку «Запустить» (или написать /start), в ответ BotFather пришлет список доступных команд.

Отправим боту команду /newbot, чтобы создать нового бота. В ответ он попросит ввести имя будущего бота, его можно писать на русском. После ввода имени нужно будет изобрести адрес бота, причем он должен заканчиваться на слово bot. Например, drach_pro_bot. Если адрес уже кем‑то занят, придётся придумывать новый.

Когда бот будет создан, мы получим сообщение, в котором будет исчерпывающая техническая информация о боте. Обратите внимание, что после фразы Use this token to access the HTTP API будет написана строка из букв и цифр — это токен.

Реализуем бота для Telegram, воспользовавшись возможностями языка Python. Понятно, что чтобы бот всегда работал, его код должен быть запущен и выполняться 24 часа в сутки. Значит, потребуется сервер (для надежности под операционной системой Linux), на котором установлен Python. Если такого сервера нет, можно запускать код на собственной домашней машине, но тогда придётся повозиться с настройками роутера. Но есть ещё один интересный вариант, который очень подходит для тестирования и изучения ботов — это Colab.

Работать будем в рабочей тетради Colab, так как это нам даёт замечательные преимущества: не надо устанавливать собственный сервер в Интернет и не надо перенастраивать домашний роутер.

Далее в рабочей тетради Colab проверяем версию Python. Чтобы операция выполнялась на уровне операционной системы (а не языка программирования), перед командой ставим восклицательный знак:

!python3 —version

Должны получить ответ вида:

Python 3.7.13

Для взаимодействия с Telegram API средствами языка Python разработаны несколько модулей. Самый простой из них — Telebot. Устанавливаем необходимый пакет:

!pip3 install pytelegrambotapi

В редчайших случаях, возможно, понадобится написать просто pip вместо pip3.

Задача 1. ЭХО

Сначала реализуем простейшего бота – для понимания процесса. Он будет получать от пользователя текстовое сообщение и возвращать его же. Используем код:

Для запуска бота в Colab нажимаем Ctrl+F9.

Если всё запустилось без ошибок, переходим в Telegram – проверять работу бота. Ищем бота по придуманному ранее адресу. Запускаем бота кнопкой «Запустить» (Start) или командой /start. При правильной работе бот возвращает сообщения отправителю один-в-один.

Задача 2. Бот-всезнайка

Более сложный бот, который будет давать определения для введённых терминов. Черпать информацию будем из Википедии по той причине, что для этого уже разработан прекрасный модуль:

!pip3 install wikipedia

Используем следующий код и запустим его.

Задача 3. БОТ С ДВУМЯ ВИРТУАЛЬНЫМИ КНОПКАМИ

Во многих ботах для выбора каких‑то действий применяются так называемые виртуальные кнопки. Реализуем ветвление. Пользователь будет выбирать, что он хочет прочитать (например, афоризмы или новости).

Потребуется создать два файла: thinks.txt и facts.txt, которые содержат список сегодняшних новостей и афоризмы. Одна строка – одно утверждение. Лучше создать хотя бы три строки в каждом.

На данном этапе куда удобнее будет привязать Google drive (Гугл-диск) к Colab и загрузить туда текстовые документы.

Команда для привязки Гугл-диска:

from google.colab import drive
drive.mount(‘/content/drive’)

Важно! Если использовать для этого бота тот же токен, что и для предыдущего, то, чтобы увидеть кнопки, потребуется перезапуск командой /start.

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