Функции пользовательской интеграции в Synology Chat позволяют настраивать входящие и исходящие веб-перехватчики, боты и команды с косой чертой. Нажмите значок Фотография профиля в правом верхнем углу экрана и выберите Интеграция, чтобы включить эти функции.
Поддержка входящих веб-перехватчиков позволяет публиковать сообщения из внешних источников в Chat. Данная функция использует общие запросы HTTP с полезной нагрузкой JSON, а также другие дополнительные параметры.
Существует два способа отправки данных на URL-адрес веб-перехватчика:
payload
в POST request.Полезная нагрузка 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 предназначен для просмотра