Использование интеграции в Synology Chat

Функции пользовательской интеграции в Synology Chat позволяют настраивать входящие и исходящие веб-перехватчики, боты и команды с косой чертой. Нажмите значок Фотография профиля в правом верхнем углу экрана и выберите Интеграция, чтобы включить эти функции.

Входящие веб-перехватчики

Поддержка входящих веб-перехватчиков позволяет публиковать сообщения из внешних источников в Chat. Данная функция использует общие запросы HTTP с полезной нагрузкой JSON, а также другие дополнительные параметры.

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

Существует два способа отправки данных на URL-адрес веб-перехватчика:

Полезная нагрузка JSON может содержать свойство text, которое будет опубликовано в назначенном канале. Например.

payload={"text": "Первая строка сообщения, публикуемого на канале.\nТакже можно добавить вторую строку сообщения."}

Добавление ссылок

Чтобы добавить ссылку, можно ввести ее непосредственно в text. Например.

payload={"text": "<https://www.synology.com>"}

Другой пример:

payload={"text": "Посмотрите!! <https://www.synology.com|Нажмите здесь> и узнайте больше!"}

Загрузка файлов

Можно также загрузить файл во входящие сообщения. Чтобы загрузить файл, полезная нагрузка JSON должна содержать свойство file_url, а также дополнительное свойство text. Будет выполнено скачивание URL-адреса в качестве сообщения, содержащего загруженный файл пользователя. Например.

payload={"text": "забавная картинка", "file_url": "http://imgur.com/xxxxx"}

Примечание.

Исходящие веб-перехватчики

Исходящие веб-перехватчики улавливают слова запуска в сообщениях Chat. Эти слова запуска отправляют соответствующие данные на внешний URL-адрес. Исходящие веб-перехватчики запускаются только при соблюдении одного или двух следующих условий:

Если канал указан, то слова запуска являются дополнительным условием. Слова запуска являются обязательным условием, если канал не выбран. Однако если соблюдаются оба условия, то исходящий веб-перехватчик запускается только при их одновременном соблюдении.

Исходящие данные

Если полученное сообщение соответствует триггеру, POST будет отправлен на назначенный URL-адрес. Поля данных рассмотрены ниже.

token: токен программы-робота
channel_id
channel_name
user_id
username
post_id
timestamp
text
trigger_word: соответствующее слово запуска

Ответные

Если внешнему месту назначения требуется ответить в канале Chat, то JSON необходимо вернуть в основном тексте ответа. Поддерживаемые поля соответствуют JSON входящего веб-перехватчика.

Команды с косой чертой

Команды с косой чертой позволяют запускать исходящие веб-перехватчики. Для этого достаточно ввести символ «/» в текстовом поле. Ответы будут видны только вам, и другие пользователи не будут получать ненужные сообщения.

Создание команды с косой чертой

Команды с косой чертой можно настроить в разделе Интеграция. Чтобы открыть раздел Интеграция, нажмите вашу фотографию профиля в правом верхнем углу.

Использование команды с косой чертой

Введите косую черту «/» в текстовом поле любого канала или разговора. Появится список команд, созданных вами и вашими рабочими группами. Например, если ввести символ «/» и выбрать команду «/lunch» (обед), веб-перехватчик порекомендует еду.

Боты

Бот может начать с вами разговор один на один, разместить сообщения, отправленные с внешних источников, и прослушать сообщения, отправленные пользователем в разговоре.

Запрет другим пользователям начинать разговор с вашими ботами

Установите флажок Скрыть в списке ботов, чтобы пользователи не видели и не добавляли этот бот из списка ботов.

Отправка исходящих данных

После ввода исходящего URL-адреса в поле конфигурации бота Chat отправит запрос по URL-адресу, когда пользователь отправит сообщение боту. Поля данных рассмотрены ниже.

token: токен программы-робота
user_id
username
post_id
timestamp
text

Примечание.

Отправка входящих сообщений

Вы можете назначить получателей и сообщения с помощью параметра полезной нагрузки в POST request. Например.

payload={"text": "Первая строка сообщения, публикуемого на канале.\nТакже можно добавить вторую строку сообщения.", "user_ids": [5] }

Это означает, что сообщение Первая строка сообщения, публикуемого на канале.\nТакже можно добавить вторую строку сообщения.> было отправлено пользователю с идентификатором user_id 5.

Прикрепление сообщений к входящим сообщениям

В разговоре с ботом бот может отправлять тексты и файлы, а также прикладывать определенные данные (вложения) и интерактивные объекты (действия). В настоящий момент для интерактивных объектов используются кнопки. Вы можете добавить сообщение, которое хотите прикрепить к полю вложений, в полезной нагрузке. Например.

attachments: массив объекта вложения

attachment object: {
  callback_id: строка[2], которая указывает на строку, самостоятельно определяемую службой бота. Будет отправлено вам, когда пользователь запускает событие с вложенными данными.
  text: строка
actions: массив объекта действия
}

action object: {
type: "button"
text: строка
name: строка
value: строка
style: строка, в которой green, grey, red, orange, blue и teal — допустимые значения
}

Например.

payload={"text": "Hello World", "user_ids": [3], "attachments":
[{"callback_id": "abc", "text": "attachment", "actions":
[{"type": "button", "name": "resp", "value": "ok", "text": "OK", "style": "green"}]}]}

Получение интерактивных данных, инициируемых пользователями

Когда пользователь инициирует интерактивный объект, Chat отправит запрос по исходящему URL-адресу бота. Поля данных рассмотрены ниже.

payload = {
"actions": массив объекта действия, который указывает на действие, запущенное пользователем
"callback_id": строка, которая указывает на callback_id вложения, в котором запущенное пользователем действие находится
"post_id"
"token"
"user": {
"user_id"
"username"
}
}

После того как бот получит запрос, он сможет отправить данные JSON обратно для исправления исходной публикации. Кроме user_id поддерживаемый формат совпадает с форматом в полезной нагрузке.

Например.

{"text": "Ответ получен!"}

Создание списка разговоров, видимых для бота

Вы можете отправить запрос по следующему URL-адресу:
[URL-адрес Chat]/webapi/entry.cgi?api=SYNO.Chat.External&method=channel_list&version=2

и включить указанный ниже параметр:
token = токен программы-робота

Создание списка пользователей, видимых для бота

Вы можете отправить запрос по следующему URL-адресу:
{URL-адрес Chat}/webapi/entry.cgi?api=SYNO.Chat.External&method=user_list&version=2

и включить указанный ниже параметр:
token = токен программы-робота

Создание списка сообщений, видимых для бота

Вы можете отправить запрос по следующему URL-адресу:
{URL-адрес Chat}/webapi/entry.cgi?api=SYNO.Chat.External&method=post_list&version=2

и включить указанные ниже параметры:
token = токен программы-робота
channel_id = channel_id предназначен для просмотра
next_count = количество сообщений после публикации
prev_count = количество сообщений до публикации (не менее 1)
(дополнительно)post_id = post_id предназначен для просмотра, незаполненный post_id указывает на последнее сообщение

Скачивание данных файла

Вы можете отправить запрос по следующему URL-адресу:
{Chat URL}/webapi/entry.cgi?api=SYNO.Chat.External&method=post_file_get&version=2&post_id={post id}&token="{bot token}"

и включить указанные ниже параметры:
token = токен программы-робота
post_id = post_id предназначен для просмотра

Примечание.