...

Отправка сообщений в Ленту по API

Тема в разделе "Примеры решений и дополнительных модулей", создана пользователем bliza0812, 19 апр 2023.

Метки:
  1. bliza0812

    bliza0812 Новичок

    Открытого API для отправки сообщений в Ленту в справочника ELma365 не находила, но благодаря коллеге нашла в браузере в запросах - Сети и поэкспериментировала.

    API: https://<host>/api/feed/targets/<Раздел>/<Приложение>/<ID элемента приложения>/messages
    JSON:
    {
    "body": "<p> тест </p> ",
    "mentionIds": [],
    "files": []
    }
    Чтобы отправить обычный текст в ленту, достаточно прописать его в body. И кстати все теги HTML для этого в помощь.

    Чтобы отправить с гиперссылкой, вызывающей человека, нужно знать его id и прописать это в body:
    {
    "body": "<p><a class=\"mention\" rel=\"<ID_Person>\" type=\"undefined\" href=\"/(p:/profile/<ID_Person>)\" onclick=\"return elmaMentionClick(this);\"><span contenteditable=\"false\"> <Name_Person> </span></a> текст тест </p>",
    "mentionIds": [
    "<ID_Person>"
    ],
    "files": []
    }

    Также для отправки любого файла есть атрибут files, который требует внутренний хеш файла:
    {
    "body": "",
    "mentionIds": [],
    "files": [
    {
    "hash": "8aec8c96-b276-4430-8068-7c6d18426bad",
    "__name": "тест.PNG",
    "size": 95912
    }
    ]
    }
    И насколько я поняла, этот хеш не тот, который генерируется через метод getFileMD5Hash(), а какой-то другой. Возможно это хеш, который создается через API pub/v1/disk/file/upload, но у меня самой его воспроизвести не получилось, этот API не рабочий. Справка на API

    Поэтому возникла идея для отправки файлов по API без хеша использовать теги HTML и ссылки на картинки (например из бакета Яндекс Cloud или сервиса https://imgur.com/)

    Пример:
    {
    "body": "<p><a href='https://i.imgur.com/pqCtuWF.jpeg'><img src='https://i.imgur.com/pqCtuWF.jpeg'</a> 111</p>",
    "mentionIds": [],
    "files": []
    }
    Отправила ссылку на картинку и саму картинку в request.

    Вложения:

  2. victor.alekhin

    victor.alekhin Новичок

    А как можно указать ID элемента в чью Ленту отправить сообщение?
  3. e.baigushkina

    e.baigushkina Участник

    напрямую вставляете id элемента в URL запроса

    [​IMG]
  4. ava_var

    ava_var Активный участник

    API для отправки сообщения в ленту объекта - у элемента приложения есть метод sendMessage
  5. e.baigushkina

    e.baigushkina Участник

    Вот только sendMessage() работает лишь внутри платформы. И из внешних сервисов нет никакой возможности отправлять сообщения в ленту задачи, например.
    Тем более sendMessage() работает от лица Системы, а не пользователя
  6. Maloy5051

    Maloy5051 Новичок

    Помогите пожалуйста не получится использовать ваше решение пишет
    "need logout"