paint-brush
De Python a Telegram: crea tu propio sistema de notificaciónby@beranzor
15,431
15,431

De Python a Telegram: crea tu propio sistema de notificación

Anzor Berezgov2022/01/10
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow
ES

Aprenda a enviar mensajes desde una secuencia de comandos de Python al chat de Telegram.
featured image - De Python a Telegram: crea tu propio sistema de notificación
Anzor Berezgov HackerNoon profile picture


A veces es útil hacer que su secuencia de comandos de python pueda enviar algún tipo de notificación directamente al teléfono móvil de un usuario o a un desarrollador (quizás a usted mismo). Puede ser una especie de registro, o notificación de que se realizó algún trabajo, o un informe de error.


La herramienta más popular, gratuita, estable e impecable para agregar notificaciones de software a su teléfono es Telegram messenger. Al momento de escribir este artículo, Telegram tiene más de mil millones de descargas y alrededor de 500 millones de usuarios activos por mes.


En este tutorial, mostraré paso a paso cómo agregar notificaciones de Telegram con 25 líneas de código y sin bibliotecas adicionales para su proyecto, a excepción de dos bibliotecas básicas: solicitudes y json, que son casi estándar para python.


Si ya tiene una cuenta de Telegram, no dude en pasar al paso 2.

De lo contrario, debe tener una cuenta en Telegram Messenger. Entonces, aprendamos cómo obtener esa cuenta.

Paso 1. Crear una cuenta de Telegram

Telegram está disponible en todas las plataformas conocidas como iOS, Android, Linux, Windows, macOS. Es mejor tener la app de Telegram en un dispositivo móvil porque nuestro objetivo es recibir notificaciones estemos donde estemos.

Elija una versión adecuada de Telegram en https://telegram.org/ e instálela en su dispositivo móvil.


Inmediatamente después del lanzamiento, Telegram le sugerirá que registre una cuenta utilizando un número de teléfono móvil. Debe tener uno, o puede registrar una cuenta sin tener su propio número, pero utilizando un número temporal proporcionado por un servicio. Tal vez escribiré un tutorial al respecto.

A continuación, debemos registrar un bot. Si sabe cómo hacerlo, o si ya tiene un bot, omita este paso...


Paso 2. Registrar un Bot

Abra la aplicación Telegram, presione el ícono de búsqueda en la esquina superior derecha e ingrese BotFather.

Deberías ver una pantalla como esta:

Buscando BotFather


Observe un icono de una marca de verificación blanca en un entorno azul a la derecha de BotFather. Significa que la cuenta no es falsa.


Seleccione la cuenta de BotFather y presione el botón INICIO para comenzar a chatear con BotFather.

Ventana inicial antes de iniciar el bot BotFather


Observe un icono de una marca de verificación blanca en un entorno azul a la derecha de BotFather. Significa que la cuenta no es falsa.


Seleccione la cuenta de BotFather y presione el botón INICIO para comenzar a chatear con BotFather.

Interactuando con BotFather


Felicidades por tu nuevo robot.

BotFather le envía un token para permitirle acceder a la API HTTP. Cópielo para su uso posterior. Es información privada que permite el control total de su Bot. Guárdelo con cuidado.

Encuentre su Bot usando una barra de búsqueda y abra un chat con su Bot. Haga clic en iniciar.



Paso 3. Copie esta función en su código python


 import requests import json def send_telegram_message(message: str, chat_id: str, api_key: str, proxy_username: str = None, proxy_password: str = None, proxy_url: str = None): responses = {} proxies = None if proxy_url is not None: proxies = { 'https': f'http://{username}:{password}@{proxy_url}', 'http': f'http://{username}:{password}@{proxy_url}' } headers = {'Content-Type': 'application/json', 'Proxy-Authorization': 'Basic base64'} data_dict = {'chat_id': chat_id, 'text': message, 'parse_mode': 'HTML', 'disable_notification': True} data = json.dumps(data_dict) url = f'https://api.telegram.org/bot{api_key}/sendMessage' response = requests.post(url, data=data, headers=headers, proxies=proxies, verify=False) return response


Eso es.

Ahora puede enviar notificaciones a Telegram llamando a la función send_telegram_message .

Paso 4. Usar un proxy

La URL del proxy, el nombre de usuario y la contraseña generalmente no son necesarios y, si se requieren, estos datos pueden ser proporcionados por un administrador del sistema de su red. Por lo general, las URL de proxy para https y http son las mismas. De lo contrario, esta función se puede modificar ligeramente para adaptarse a los nuevos requisitos agregando un nuevo conjunto de parámetros para la URL HTTPS.

Paso 5. Cómo obtener un chat_id

Puede ser complicado averiguar cómo obtener un chat_id para enviar mensajes.

Pero la solución es simple: solo use @username_to_id_bot u otros bots similares (hay muchos bots en Telegram listos para ayudarlo).

Este bot le enviará su ID que se puede usar como parámetro en la función send_telegram_message.


Finalmente, probemos cómo funciona.

Agregue estas líneas a su código:

 chat_id = "<fill your chat id here>" api_key = "<fill api key of your bot here>" send_telegram_message("Hello world!!!", chat_id, api_key)


¡Se hace!