Envoyer un message
Les développeurs peuvent envoyer des messages à des conversations spécifiques via l'API.
Méthode de requête
POST
URL de requête
https://livedesk-api.engagelab.com/api/v2/accounts/conversations/:conversation_id/messages
Authentification
Veuillez consulter la description de l'authentification dans Présentation de l'API pour plus de détails.
Requête de texte
Exemple de requête
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
}
}'
Afficher ce bloc de code dans la fenêtre flottante
En-têtes de requête
| Champ | Type | Description |
|---|---|---|
| Authorization | string | Utilisez Authorization: Basic base64(API Key:API Secret) pour l'authentification. Veuillez vous rendre sur la page de la clé API pour obtenir la clé API et le secret API, puis les relier par un deux-points avant l'encodage Base64. |
| Content-Type | application/json | Type de données, utilisez application/json pour les messages en texte brut. |
Paramètres de chemin
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| conversation_id | string | Oui | ID de la conversation. |
Paramètres du corps de la requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| content | String | Oui | Contenu du message. |
| private | Boolean | Non | Indique s'il s'agit d'un message privé, la valeur par défaut est false. |
| content_attributes | Object | Non | Attributs du contenu, comme la spécification de l'ID du message avec le champ in_reply_to lors d'une réponse à un message. |
Exemple de réponse texte
Réponse réussie
{
"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": ""
}
}
Afficher ce bloc de code dans la fenêtre flottante
Paramètres de réponse
| Champ | Type | Description |
|---|---|---|
| id | Int | ID du message. |
| content | String | Contenu du message. |
| inbox_id | Int | ID de la boîte de réception. |
| conversation_id | Int | ID de la conversation. |
| message_type | Int | Type de message. |
| content_type | String | Type de contenu. |
| status | String | Statut du message, tel que "sent", "delivered", etc. |
| content_attributes | Object | Attributs du contenu. |
| created_at | Int | Horodatage de création du message. |
| private | Boolean | Indique s'il s'agit d'un message privé. |
| source_id | Int | ID de la source. |
| sorting_id | Int | ID de tri. |
| sender | Object | Informations sur l'expéditeur. |
| id | Int | ID de l'expéditeur. |
| name | String | Nom de l'expéditeur. |
| available_name | String | Nom d'affichage de l'expéditeur. |
| avatar_url | String | URL de l'avatar de l'expéditeur. |
| type | String | Type d'expéditeur (par exemple, user). |
| availability_status | String | Statut en ligne de l'expéditeur (par exemple, offline). |
| thumbnail | String | Miniature de l'expéditeur. |
Requête d'image/audio/fichier
Exemple de requête
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"
Afficher ce bloc de code dans la fenêtre flottante
Paramètres de chemin
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| conversation_id | string | Oui | ID de la conversation. |
Exemple de réponse image/audio/fichier
Réponse réussie
{
"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/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/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2RTNKbGMybDZaVjkwYjE5bWFXeHNXd2RwQWZvdyIsImV4cCI6bnVsbCwicHVyIjoidmFyaWF0aW9uIn19--63c890cbf173eb3dc92a8786fcc3e120c329852d/android-icon-48x48.png",
"file_size": 589136,
"width": null,
"height": null
}
]
}
Afficher ce bloc de code dans la fenêtre flottante
Paramètres de réponse
| Champ | Type | Description |
|---|---|---|
| id | Int | ID du message. |
| content | String | Contenu du message. |
| inbox_id | Int | ID de la boîte de réception. |
| conversation_id | Int | ID de la conversation. |
| message_type | Int | Type de message. |
| content_type | String | Type de contenu. |
| status | String | Statut du message, tel que "sent", "delivered", etc. |
| content_attributes | Object | Attributs du contenu. |
| created_at | Int | Horodatage de création du message. |
| private | Boolean | Indique s'il s'agit d'un message privé. |
| source_id | Int | ID de la source. |
| sorting_id | Int | ID de tri. |
| sender | Object | Informations sur l'expéditeur. |
| id | Int | ID de l'expéditeur. |
| name | String | Nom de l'expéditeur. |
| available_name | String | Nom d'affichage de l'expéditeur. |
| avatar_url | String | URL de l'avatar de l'expéditeur. |
| type | String | Type d'expéditeur (par exemple, user). |
| availability_status | String | Statut en ligne de l'expéditeur (par exemple, offline). |
| thumbnail | String | Miniature de l'expéditeur. |
| attachments | Array | Liste des informations sur les pièces jointes. |
| id | Int | ID de la pièce jointe. |
| message_id | Int | ID du message auquel elle appartient. |
| file_type | String | Type de fichier (par exemple, image). |
| account_id | Int | ID du compte. |
| extension | String | Extension du fichier. |
| data_url | String | URL du fichier. |
| thumb_url | String | URL de la miniature (type image uniquement). |
| file_size | Int | Taille du fichier (octets). |
| width | Int | Largeur du fichier (type image uniquement). |
| height | Int | Hauteur du fichier (type image uniquement). |

