Enviar mensaje
Se pueden enviar mensajes a conversaciones específicas mediante la API.
Método de solicitud
POST
URL de la solicitud
https://livedesk-api.engagelab.com/api/v2/accounts/conversations/:conversation_id/messages
Autenticación
Consúltese la descripción de la autenticación en Visión general de la API para obtener más información.
Solicitud de texto sin formato
Ejemplo de solicitud
curl -X POST 'https://livedesk-api.engagelab.com/api/v2/accounts/conversations/:conversation_id/messages' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic base64(api_key:api_secret)' \
-d '{
"content": "Agent sending message, is it normal?",
"private": false,
"content_attributes": {
"in_reply_to": 29
}
}'
curl -X POST 'https://livedesk-api.engagelab.com/api/v2/accounts/conversations/:conversation_id/messages' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic base64(api_key:api_secret)' \
-d '{
"content": "Agent sending message, is it normal?",
"private": false,
"content_attributes": {
"in_reply_to": 29
}
}'
Este bloque de código se muestra en una ventana flotante
Encabezados de la solicitud
| Campo | Tipo | Descripción |
|---|---|---|
| Authorization | string | Usar Authorization: Basic base64(API Key:API Secret) para la autenticación. Acceda a la página de claves de API (API Key) para obtener la API Key y el secreto de API (API Secret), y únalas con dos puntos antes de la codificación Base64. |
| Content-Type | application/json | Tipo de datos; usar application/json para mensajes de texto sin formato. |
Parámetros de ruta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| conversation_id | string | Sí | ID de la conversación. |
Parámetros del cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| content | string | Sí | Contenido del mensaje. |
| private | boolean | No | Indica si es un mensaje privado; el valor predeterminado es false. |
| content_attributes | object | No | Atributos de contenido; por ejemplo, al responder a un mensaje, se puede especificar el ID del mensaje mediante el campo in_reply_to. |
Ejemplo de respuesta de texto
Respuesta correcta
{
"id": 3030,
"content": "Agent sending message, is it normal?",
"inbox_id": 79,
"conversation_id": 141,
"message_type": 1,
"content_type": "text",
"status": "sent",
"content_attributes": {},
"created_at": 1762331029,
"private": false,
"source_id": null,
"sorting_id": 4,
"sender": {
"id": 3,
"name": "TEST",
"available_name": "TEST",
"avatar_url": "",
"type": "user",
"availability_status": "offline",
"thumbnail": ""
}
}
{
"id": 3030,
"content": "Agent sending message, is it normal?",
"inbox_id": 79,
"conversation_id": 141,
"message_type": 1,
"content_type": "text",
"status": "sent",
"content_attributes": {},
"created_at": 1762331029,
"private": false,
"source_id": null,
"sorting_id": 4,
"sender": {
"id": 3,
"name": "TEST",
"available_name": "TEST",
"avatar_url": "",
"type": "user",
"availability_status": "offline",
"thumbnail": ""
}
}
Este bloque de código se muestra en una ventana flotante
Parámetros de la respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| id | Int | ID del mensaje. |
| content | String | Contenido del mensaje. |
| inbox_id | Int | ID de la bandeja de entrada. |
| conversation_id | Int | ID de la conversación. |
| message_type | Int | Tipo de mensaje. |
| content_type | String | Tipo de contenido. |
| status | String | Estado del mensaje, como sent, delivered, etc. |
| content_attributes | Object | Atributos de contenido. |
| created_at | Int | Marca de tiempo de creación del mensaje. |
| private | Boolean | Si se trata de un mensaje privado. |
| source_id | Int | ID de origen. |
| sorting_id | Int | ID de ordenación. |
| sender | Object | Información del remitente. |
| sender.id | Int | ID del remitente. |
| sender.name | String | Nombre del remitente. |
| sender.available_name | String | Nombre para mostrar del remitente. |
| sender.avatar_url | String | URL del avatar del remitente. |
| sender.type | String | Tipo de remitente (p. ej., user). |
| sender.availability_status | String | Estado en línea del remitente (p. ej., offline). |
| sender.thumbnail | String | Miniatura del remitente. |
Solicitud de imagen/audio/archivo
Ejemplo de solicitud
curl -X POST "https://livedesk.engagelab.com/api/v2/accounts/conversations/:conversation_id/messages" \
-H "Authorization: Basic base64(api_key:api_secret)" \
-F "attachments[]=@/path/to/your/file.jpg" \
-F "content=Detailed image as follows"
curl -X POST "https://livedesk.engagelab.com/api/v2/accounts/conversations/:conversation_id/messages" \
-H "Authorization: Basic base64(api_key:api_secret)" \
-F "attachments[]=@/path/to/your/file.jpg" \
-F "content=Detailed image as follows"
Este bloque de código se muestra en una ventana flotante
Parámetros de ruta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| conversation_id | string | Sí | ID de la conversación. |
Ejemplo de respuesta de imagen/audio/archivo
Respuesta correcta
{
"id": 3031,
"content": "Detailed image as follows",
"inbox_id": 79,
"conversation_id": 141,
"message_type": 1,
"content_type": "text",
"status": "sent",
"content_attributes": {},
"created_at": 1762331762,
"private": false,
"source_id": null,
"sorting_id": 5,
"sender": {
"id": 3,
"name": "Wenjie Yu",
"available_name": "Wenjie Yu",
"avatar_url": "",
"type": "user",
"availability_status": "offline",
"thumbnail": ""
},
"attachments": [
{
"id": 199,
"message_id": 3031,
"file_type": "image",
"account_id": 14,
"extension": null,
"data_url": "https://livedesk.engagelab.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBamNUIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--727ba7469d64f90790d242c743f254b5c9013fe1/android-icon-48x48.png",
"thumb_url": "https://livedesk.engagelab.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBamNUIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--727ba7469d64f90790f242c743f254b5c9013fe1/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2RTNKbGMybDZaVjkwYjE5bWFXeHNXd2RwQWZvdyIsImV4cCI6bnVsbCwicHVyIjoidmFyaWF0aW9uIn19--63c890cbf173eb3dc92a8786fcc3e120c329852d/android-icon-48x48.png",
"file_size": 589136,
"width": null,
"height": null
}
]
}
{
"id": 3031,
"content": "Detailed image as follows",
"inbox_id": 79,
"conversation_id": 141,
"message_type": 1,
"content_type": "text",
"status": "sent",
"content_attributes": {},
"created_at": 1762331762,
"private": false,
"source_id": null,
"sorting_id": 5,
"sender": {
"id": 3,
"name": "Wenjie Yu",
"available_name": "Wenjie Yu",
"avatar_url": "",
"type": "user",
"availability_status": "offline",
"thumbnail": ""
},
"attachments": [
{
"id": 199,
"message_id": 3031,
"file_type": "image",
"account_id": 14,
"extension": null,
"data_url": "https://livedesk.engagelab.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBamNUIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--727ba7469d64f90790d242c743f254b5c9013fe1/android-icon-48x48.png",
"thumb_url": "https://livedesk.engagelab.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBamNUIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--727ba7469d64f90790f242c743f254b5c9013fe1/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2RTNKbGMybDZaVjkwYjE5bWFXeHNXd2RwQWZvdyIsImV4cCI6bnVsbCwicHVyIjoidmFyaWF0aW9uIn19--63c890cbf173eb3dc92a8786fcc3e120c329852d/android-icon-48x48.png",
"file_size": 589136,
"width": null,
"height": null
}
]
}
Este bloque de código se muestra en una ventana flotante
Parámetros de la respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| id | Int | ID del mensaje. |
| content | String | Contenido del mensaje. |
| inbox_id | Int | ID de la bandeja de entrada. |
| conversation_id | Int | ID de la conversación. |
| message_type | Int | Tipo de mensaje. |
| content_type | String | Tipo de contenido. |
| status | String | Estado del mensaje, como sent, delivered, etc. |
| content_attributes | Object | Atributos de contenido. |
| created_at | Int | Marca de tiempo de creación del mensaje. |
| private | Boolean | Si se trata de un mensaje privado. |
| source_id | Int | ID de origen. |
| sorting_id | Int | ID de ordenación. |
| sender | Object | Información del remitente. |
| sender.id | Int | ID del remitente. |
| sender.name | String | Nombre del remitente. |
| sender.available_name | String | Nombre para mostrar del remitente. |
| sender.avatar_url | String | URL del avatar del remitente. |
| sender.type | String | Tipo de remitente (p. ej., user). |
| sender.availability_status | String | Estado en línea del remitente (p. ej., offline). |
| sender.thumbnail | String | Miniatura del remitente. |
| attachments | Array | Lista de información de los archivos adjuntos. |
| attachments[].id | Int | ID del archivo adjunto. |
| attachments[].message_id | Int | ID del mensaje al que pertenece. |
| attachments[].file_type | String | Tipo de archivo (p. ej., image). |
| attachments[].account_id | Int | ID de la cuenta. |
| attachments[].extension | String | Extensión del archivo. |
| attachments[].data_url | String | URL del archivo. |
| attachments[].thumb_url | String | URL de la miniatura (solo para el tipo image). |
| attachments[].file_size | Int | Tamaño del archivo (bytes). |
| attachments[].width | Int | Ancho del archivo (solo para el tipo image). |
| attachments[].height | Int | Alto del archivo (solo para el tipo image). |

