Задать вопрос
  • Как правильно отправлять сообщения через открытую линию в Битрикс24?

    webgromov
    @webgromov
    webgromov.ru
    Ладно, допустим я пытался разобраться в этом методе 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 вообще ничего не добавляет.
    Ответ написан
    Комментировать