Encabezados
La autorización de la API de Chats difiere de la autorización usada en otros métodos de la API de Kommo . Para trabajar con la API de Chats, no necesitas pasar un Token de acceso, pero debes incluir los siguientes encabezados en todas las solicitudes a amojo.kommo.com:
DateContent-TypeContent-MD5X-Signature
| Header | Descripción |
|---|---|
Date | Fecha y hora de la generación de la solicitud; la firma será válida por 15 minutos desde la fecha de generación de la solicitud.. |
Content-Type | Tipo de datos de la solicitud; actualmente solo se admite application/json. |
Content-MD5 | Para el cuerpo de la solicitud, necesitas calcular el hash md5 y especificarlo en el encabezado en minúsculas. Es importante tener en cuenta que el cuerpo de la solicitud se calcula como un flujo de bytes, sin tener en cuenta el final del marcado json, y si hay \n o espacios al final, también se tomarán en cuenta. Para solicitudes GET, el md5 también debe calcularse, incluso si no se envía nada en el cuerpo de la solicitud (obtendrás el md5 de una cadena vacía). |
X-Signature | Firma de la solicitud. Se forma una cadena a partir del nombre del método (GET/POST) en mayúsculas y los valores (tal como se especifican en la solicitud sin cambios) de los encabezados, combinándolos mediante \n. Los valores de los encabezados deben seguir un cierto orden. En general, si falta un encabezado, se especifica una cadena vacía en su lugar. Luego, debes agregar la ruta solicitada de la URL sin el protocolo y dominio (sin parámetros GET) a la cadena.Después, calcula la cadena resultante usando HMAC-SHA1, y como secreto usa el secret del canal obtenido durante el registro del canal de chat. Especificamos el hash resultante en minúsculas en el encabezado X-Signature. |
Es importante no usar una clave secreta en el frontend del widget. Cualquier solicitud que use la clave secreta debe realizarse solo desde la parte backend de tu aplicación.
Formación de firmas y encabezados
Como se mencionó anteriormente, todas las solicitudes deben tener una serie de encabezados, incluido X-Signature, cuyo valor es el hash SHA1 del cuerpo de la solicitud, firmado con una clave secreta. Usar una clave secreta permite verificar la integridad de los datos útiles y su origen.
Puedes consultar la receta para calcular tus encabezados de la API de Chats en Python y PHP aquí:
