Ладно, допустим я пытался разобраться в этом методе 2 дня. Мне никто не смог помочь. Я выкурил пачку сигарет и 300 раз обозвал битрикс
По методу imconnector.send.status.delivery (подтверждение доставки сообщения от оператора) (который отмечает сообщение прочитанным) - найдено решение. Делюсь, т.к. у меня это отняло очень много времени.
В документации метода (Обновить статус «доставлено» imconnector.send.status.delivery) описаны параметры. Но массив messages в виде массива на PHP. Я весь день долбался с тем, какие данные отправить в messages, хоть какой-то ответ пришёл в DATA. изначально приходило это.
"result": {
"SUCCESS": true,
"DATA": []
},
1. Первое и самое важное - не ждите данных в DATA
Они никогда не придут. У меня получилось прочитать со стороны пользователя, но в DATA так ничего и не пришло.
2. Второе - работающие параметры в json выглядят так:
{
"auth": "{{access_token}}",
"CONNECTOR":"gromov_test",
"LINE":16,
"MESSAGES": [{
"im": {
"chat_id": 840,
"message_id": 69046
},
"message": {"id": ["ext-message-3464"]},
"chat": {"id": "ext-chat-3354"}
}]
}
3. Объяснение парамтеров в messages
auth - ключ аутентификации
CONNECTOR, LINE - Коннектор и открытая линия, как обычно
im - объект im из объекта вебхука сообщения. для получения вебхуков
- чтобы получать вебхуки - прочитайте о событиях
- подключите свой кастомный обработчик (ссылку) через API, чтобы принимать вебхуки на свой адрес
- для тестового получения объекта сообщения можно использовать
https://webhook.site
По стандарту это массив с chat_id и message_id из чата.
Так вот, объекты
message и chat - сюда можно вписать вообще любые варианты. Это ваши произвольные внешние айдишники, которые вы присваиваете сообщению.
4. Зачем нужны id сообщения и чата из ВНЕШНЕЙ системы
Логика в том, что типо вы написали в открытую линию. Далее сообщение отправилось в телеграм, ему присвоился id сообщения и соответственно там же есть id чата. И вы отправляете их в bitrix. Тем самым подтвердив, что сообщение доставлено.
5. Параметры message и chat - необязательные. Параметр "message": {"id": ["ext-message-3464"]} всего-лишь добавляет значение params: {connectorMid}. А chat вообще ничего не добавляет.