Software encargado de conectar Telegram unificando en un mismo chat de servicio al cliente en el proyecto core de Inka.
- Python 3.7 o superior
pip3
El archivo de configuración se encuentra en la raíz del proyecto con el nombre de .env
. Acá un ejemplo:
CORE_PORT=9090
FTP_TYPE=ftp
FTP_USER=user@host.cl
FTP_HOST=ftp.host.cl
FTP_PASSWORD=r.2ae3e,6696be
FTP_PORT=21
FTP_PATH=./upload
FTP_URL=https://www.host.cl/url/final/subida
TELEGRAM_VALUE=Telegram
TELEGRAM_PORT=9023
PGUSER=aware
PGHOST=123.12.123.123
PGPASSWORD=r.2ae3e,6696be
PGDATABASE=aware
PGPORT=5432
Variable | Descripción |
---|---|
CORE_PORT |
Puerto del socket TCP del Core. |
PORT |
Puerto donde correrá la API HTTP que donde se hará el proceso de inicio de sesión. |
FTP_TYPE |
Tipo del servidor. ftp si es FTP o ftps si es FTPS |
FTP_USER |
Usuario del servidor FTP. |
FTP_HOST |
IP o host del servidor FTP. |
FTP_PASSWORD |
Contraseña del servidor FTP. |
FTP_PORT |
Puerto del servidor FTP. |
FTP_PATH |
Ubicación interna del servidor FTP donde se guardaran los archivos. |
FTP_URL |
URL publica de donde quedan los archivos. Esta se concatena con el nombr del archivo. |
TELEGRAM_VALUE |
Valor en la tabla inka_app de las aplicaciones Telegram. Por defecto es Telegram . |
TELEGRAM_PORT |
Puerto donde correrá el servido socket TCP para recibir mensajes de Telegram. |
PGUSER |
Usuario de la base de datos PostgreSQL. |
PGHOST |
IP o host de la base de datos PostgreSQL. |
PGPASSWORD |
Contraseña de la base de datos PostgreSQL. |
PGDATABASE |
Nombre de la base de datos PostgreSQL. |
PGPORT |
Puerto de la base de datos PostgreSQL. |
- Comprobar tener Python 3.7 o una versión superior
python3 --version
- Instalar requerimientos con
pip
pip install -r requirements.txt
- Correr el archivo
main.py
python3 main.py
- Inicia sesión con tu cuenta de Telegram en este enlace.
- Navega hacia "API development tools" y rellena el formulario.
- Obtendrás los parámetros
api_id
yapi_hash
requeridos, que corresponden a los valores deapp_data3
yapp_data4
respectivos en la base de datos.
Columna | Valor |
---|---|
app_name |
Telegram |
app_data1 |
appKey . Numero de teléfono + -tg . Ej: 56987654321-tg |
app_data2 |
Número de teléfono. Ej: 56987654321 |
app_data3 |
api_id obtenida anteriormente. Ej: 1234567 |
app_data4 |
api_hash obtenido anteriormente. Ej: fcab3735bc4c7f130e1351d55726 |
app_data7 |
IP o host del Core. Ej: 123.15.12.143 |
Deberá iniciar sesión a través de una API HTTP montada dentro del mismo servidor.
- Lo primero es configurar la cuenta de Telegram en la base de datos como se mostro anteriormente.
- Iniciar el programa para así habilitar el servidor HTTP.
- Enviarle al programa la siguiente petición
POST
al endpoint/telegram/code
para recibir un código de inicio de sesión en nuestro teléfono.
POST /telegram/code HTTP/1.1
Content-Type: application/json
{
"appKey": "56987654321-tg" // Correspondiente al appKey definido anteriormente en la base de datos.
}
Lo que arrojará una respuesta como la siguiente
{
"appName": "Telegram",
"appKey": "56987654321-tg",
"phone": "56987654321",
"sendedCode": true,
"loggedIn": false,
"message": "Busca en tus mensajes de Telegram el codigo de inicio de sesion y envialo a esta API",
"codeLength": 5,
"phoneCodeHash": "4c7f130e13"
}
- Enviarle al programa el código de inicio de sesión recibido, a través de otra petición
POST
al endpoint/telegram/login
.
POST /telegram/login HTTP/1.1
Content-Type: application/json
{
"appKey": "56987654321-tg", // Correspondiente al appKey definido anteriormente en la base de datos.
"code": "12345", // Correspondiente al código de inicio de sesión recibido en tu teléfono.
"phoneCodeHash": "4c7f130e13" // Correspondiente al phoneCodeHash obtenido en el paso anterior.
}
Y si todo sale bien, deberíamos recibir una confirmación en el teléfono y un mensaje de respuesta como este
{
"appName": "Telegram",
"appKey": "56987654321-tg",
"phone": "56987654321",
"loggedIn": true,
}