# Telegram Messenger/API

Para crear la creación de otras aplicaciones es indispensable saber el mecanismo de la infraestructura llamada MTProto, este permite comunicarse con los clientes de Telegram entre usuarios. Aquí puedes revisar la documentación al respecto. También incluímos una librería para que puedas crear en poco tiempo.

### Descripción general

MTProto está estructurado, de forma sencilla en:
* El componente de alto nivel: Usado para convertir las solicitudes y respuestas API en mensajes binarios.
* La capa de autorización criptográfica: El mecanismo para codificar mensajes.
* Componente de transporte: Donde se define un medio o protocolo red para que el cliente puede comunicarse (como http, https, tcp, udp).
** Se recomienda usar a HTTP/1.1 (con keepalive)
** Para la comunicación se utiliza como conector a TCP en el puerto 80 (aceptable en los cortafuegos)
** Para prevenir la falsa sensación de seguridad, no se permite el HTTPS para reducir los procesos descritos en la capa de autorización criptográfica
Los mensajes usan parámetros, incluyendo la identificación, la clave de cifrado y el tiempo de envío:
* server salt (64 bits)
* session id
* message sequence number
* message length
* time
Las directrices para crear aplicaciones son:
* Cada aplicación usa una api_id para su autentificación.
* No se permite el uso de Telegram como nombre principal.
* Si usas con fines demostrativos es necesario mencionar como "No oficial".
* No usar el logotipo de Telegram (en especial, su fundo azul y blanco).
* Documentar su funcionamiento en la política de privacidad.
* Aconsejar que se utiliza la infraestructura de Telegram (mejor dicho "es compatible con clientes de Telegram").

### Desarrollo de aplicaciones

Para crear tu cliente de Telegram para usar como bot o para enviar o recibir mensajes, tienes la siguiente documentación:

#### Librería TDlib

* Página web
* Anuncio oficial
* Código fuente
* Documentación

##### Requisitos para desarrollo

Corresponde a la versión 1.4: (cortesía de Tecnonucleous)
* Para Windows tener:
** C++14 y versiones similares
** OpenSSL y zlib (cifrado y compresión)
** Herramientas para compilado: gperf y CMake
* Para Linux:
** Linux 4.12 o superior
** OpenSSL 1.0.2g o superior
** Instalar dependencias: g++ ccache openssl cmake gperf make git libssl-dev libreadline-dev zlib1g zlib1g-dev
* Clonar: https://github.com/tdlib/td.git

#### Administrar aplicaciones

* Para crear aplicaciones es necesario registrarte desde https://my.telegram.org/ y escoger "Apps".
* Utiliza la misma cuenta de usuario de Telegram.
* Cada aplicación posee un api_id (identificación) and api_hash (una especie de contraseña)
* Es recomendable que utilices tu número telefónico y actualizarlo si lo necesitas.
* Puedes utilizar la API del código fuente de Telegram e inspirarte desde allí.

#### Ejemplo de software que usa la API

* Plus Messenger (clon del original de Telegram, código fuente)

## Más información

* API en Telegram
* Explicación de algunos clientes participantes de la segunda Telegram Challange (en ruso)
* Cómo compilar TDlib: para Linux o para Windows
| Telegram Messenger: Índice · Introducción · Enlaces | Telegram Messenger: Índice · Introducción · Enlaces |
| Bots y servicios | Enlaces |