Получение списка сообщений диалога через API Sherlock Platform

Последние изменения: 27.06.2023

Для загрузки или отражения истории сообщений из Sherlock Platform во внешнюю систему может быть необходимо получить сообщения диалога.

Для загрузки сообщений через API Sherlock Platform сначала надо авторизоваться.

Далее необходимо вызвать метод GET контроллера Message https://<sherlock_url>/API/V2/Message/{requestId}?<Параметры> . Полученный ранее токен надо передать в заголовке как Bearer Token.

В качестве параметров в метод передаются различные условия:

  • pageSize - количество возвращаемых записей

  • skip - номер записи с которой надо загружать сообщения. 0 - для загрузки с первой записи

  • messageViewTypeId - режим просмотра сообщений. 0 - все типы сообщений, 1 - только переписка без статусных сообщений.

  • userProfileId - id канала для фильтрации сообщений. Необходимо, если для клиента есть переписка в нескольких каналах

  • isIncludeAllForClient - true если включать все сообщения клиента, false - только для текущего диалога

Метод возвращает список сообщений диалога, включая:

[
 {
 "id": "4c599bd4-0ddc-4a36-8480-a8de9e44d6ba",
 "requestId": "385172fe-92c8-4bcc-97c1-719560d31f1d",
 "userId": "8675d1af-24e2-4a53-9129-c8a57ca3a4a7",
 "clientId": "fba0bbc1-bf04-45a2-97a8-908be4327ba5",
 "messageStatusId": 3,
 "text": "Оператор подключился к диалогу.",
 "messageDirectionId": 2,
 "messageCategoryId": 1,
 "plannedDate": null,
 "sendDate": "2020-06-05T12:55:54.893",
 "socialNetworkMessengerId": "e0e90585-2001-46e2-912e-4bbf41a3eb0f",
 "externalMessageId": "2179",
 "externalAuthorId": "160281458",
 "externalRecipientId": "5448685",
 "previousMessageDelay": 625805,
 "isImportant": false,
 "messageUserCategoryId": null,
 "actualSendDate": "2020-06-05T12:55:54.893",
 "previousMessageDelayType": 4,
 "replyToSenderId": null,
 "replyToMessageId": null,
 "buttonsText": "",
 "displayText": null,
 "errorCount": 0,
 "errorMessage": null,
 "parentId": null,
 "childMessageCount": 0,
 "authorName": "2.2. При передаче оператору",
 "processedText": "Оператор подключился к диалогу.",
 "userProfileId": "adf68af7-6532-4a06-ae42-5916202407d5",
 "messageUserCategoryColor": null,
 "photoUrl": "",
 "authorInitials": "2П",
 "authorBackgroundColor": "#ecd074",
 "fileLinks": [{
      "id": "a5b0a0a0-2040-4b91-9b05-2a9b396cf783",
      "fileId": "fc6aa8f1-eb05-4d9a-a48c-f1bccfd87e57",
      "objectId": "4c599bd4-0ddc-4a36-8480-a8de9e44d6ba",
      "systemDictionaryId": "35df8dfe-d88a-4992-a4d4-54040166ca25",
      "fileName": "face.png",
      "physicalName": "9ec73c6b-58bc-472d-926e-c881371f5274.png",
      "extension": ".png",
      "url": "https://sherlockcrm.ru/API/SherlockTest/v2/Files/a5b0a0a0-2040-4b91-9b05-2a9b396cf783/face.png/Attachment",
      "attachmentTypeId": 1
    }],
 "isBotMessage": false
 }
]

Описание данных полей приведено ниже:

  1. id - уникальный ключ сообщения

  2. requestId - уникальный ключ диалога/обращения

  3. userId - автор сообщения (пользователь платформы или бот)

  4. clientId - идентификатор внешнего клиента, который пишет вам в чате или мессенджере

  5. messageStatusId - статус сообщения

    • 1 - Запланирован

    • 2 - Не прочитано

    • 3 - Прочитано

    • 4 - В очереди

    • 5 - Ошибка

    • 6 - Удален

    • 7 - Доставлено

  6. text - текст сообщения

  7. messageDirectionId - направление сообщения

    • 1 - входящее

    • 2 - исходящее

  8. messageCategoryId - категория сообщения

    • 1 - Личное сообщение

    • 2 - Комментарий. Не отражается клиенту

    • 3 - Кнопки

    • 4 - Статус диалога

    • 5 - Сообщение рассылки

    • 6 - Сервисное сообщение

    • 7 - Слайдер

  9. plannedDate - плановая дата сообщения для отложенных сообщений

  10. sendDate - дата постановки в очередь на отправку

  11. socialNetworkMessengerId - идентификатор типа канала. Реальный идентификатор клиента получается через ClientId

  12. externalMessageId - идентификатор сообщения в мессенджере

  13. externalAuthorId - Id автора сообщения в мессенджере. Зависит от направления сообщения. Id клиента для входящего сообщения

  14. externalRecipientId - Id получателя сообщения в мессенджере. Зависит от направления сообщения. Id клиента для исходящего сообщения

  15. isImportant - отметка сообщения в интерфейсе как требующего внимания. Можно фильтрами выбрать все диалоги с такими сообщениями

  16. messageUserCategoryId - назначение идентично предыдущему пункту, но настраиваемый список

  17. actualSendDate - дата когда фактически сообщение принято мессенджером. Может отличаться от SendDate в случае сбоев 

  18. previousMessageDelay - используется для статистики. Длительность паузы между текущим и предыдущим сообщениями

  19. previousMessageDelayType - указывает тип предыдущего сообщения от которого считалась задержка

    • 1 - первое сообщение

    • 2 - ответ клиенту оператором

    • 3 - ответ клиента

    • 4 - пауза между сообщениями клиента или пользователя

    • 5 - ответ клиенту основным ботом

    • 6 - ответ клиенту другим ботом

  20. replyToSenderId - используется при обработке сообщение, отправленных в ответ на другое сообщение

  21. replyToMessageId - используется при обработке сообщение, отправленных в ответ на другое сообщение

  22. buttonsText - может содержать Json с описанием кнопок

  23. displayText - обработанный текст для вывода в браузере. В частности кнопки форматируются для вывода

  24. errorCount - не нулевое в случае, если сообщение не принимается мессенджером. Например, клиент заблокировал получение сообщение

  25. errorMessage - причина ошибки, полученная от мессенджера

  26. parentId - используется в обработке комментариев. Например, комментариев Инстаграм

  27. childMessageCount - используется в обработке комментариев. Например, комментариев Инстаграм

  28. authorName - имя автора сообщения (пользователя или клиента в зависимости от направления

  29. processedText - текст с включенными HTML тегами для отражения в браузере

  30. userProfileId - идентификатор канала в Sherlock

  31. messageUserCategoryColor - RGB цвет для выделения сообщения в диалоге

  32. photoUrl - фото клиента или пользователя/бота в зависимости от направления

  33. authorInitials - инициалы автора для вывода в списке сообщение

  34. authorBackgroundColor - RGB цвет для выделения автора

  35. fileLinks - коллекция ссылок на вложения, включая ссылку для скачивания

  36. isBotMessage - true, если для сообщения бота

 

Помогла ли вам статья?