Заметки
imconnector.send.status.delivery: почему DATA пустой
Ответ SUCCESS: true вместе с DATA: [] у imconnector.send.status.delivery означает успешную обработку. Пустой массив здесь не говорит, что сообщение не найдено.
Метод вызывается в контексте приложения после доставки ответа оператора во внешний канал. Он фиксирует доставку, а не отправляет сообщение клиенту. Пример JSON-параметров без авторизационного токена:
{
"CONNECTOR": "demo_connector",
"LINE": 7,
"MESSAGES": [{
"im": { "chat_id": 120, "message_id": 450 },
"message": { "id": ["external-message-42"] },
"chat": { "id": "external-chat-8" }
}]
} im.chat_id и im.message_id берутся из события OnImConnectorMessageAdd. В message.id и chat.id передаются идентификаторы внешней системы; первый из них — массив даже для одного сообщения.
Не подменяйте внутренний ID внешним и не выдумывайте внешний ID до фактической отправки. Связь этих значений нужна для последующих операций с сообщением. По текущему описанию API подтверждение доставки также помечает сообщение прочитанным внутри открытой линии.
Для входящего сообщения от клиента используется imconnector.send.messages. Полный цикл описан в заметке о собственном коннекторе.
Документация: imconnector.send.status.delivery.