Перейти к основному содержимому

Интеграции с внешними системами взаимодействия

С помощью системы взаимодействия «1С:Шины» вы можете отправлять уведомления пользователям, инициировавшим взаимодействие, из приложения во внешние системы взаимодействия. Поддерживаются такие популярные службы обмена сообщениями, как Telegram, WhatsApp, VK, WebChat и Webhook. Интеграции позволяют реализовать рассылку сообщений нескольким пользователям, отправить сообщение отдельному пользователю, а также получать уведомления о входящих сообщениях.

Работа с интеграциями в интерфейсе на примере Telegram

Интеграция с Telegram осуществляется с помощью Telegram-бота. Благодаря этому с пользователем могут взаимодействовать сразу несколько человек. При этом для пользователя это будет выглядеть как общение с одним человеком.

Сценарий добавления интеграции с Telegram-ботом:

  1. Создайте Telegram-бот. Воспользуйтесь утилитой @BotFather, следуйте инструкции и при завершении сохраните токен бота:

    Создание Telegram-бота

    Токен будет выглядеть следующим образом:

    6875068338:AAGLTvT-gLN_m5jn-LW9vuPoa1vEVNzsWxE

  2. Зарегистрируйте свое приложение в системе взаимодействия.

  3. В среде разработки добавьте форму CollaborationSystemIntegrationForm:

    ВидЭлемента: ФрагментКомандногоИнтерфейса
    Ид: 5b285b5b-d0b2-451e-bdaf-e85f2df9e02b
    Имя: Интеграции
    ОбластьВидимости: ВПодсистеме
    Элементы:
    -
    Тип: НавигационнаяКоманда
    Представление: Интеграции
    ТипФормы: CollaborationSystemIntegrationsForm

    С ее помощью вы сможете создавать, копировать и редактировать интеграции системы взаимодействия.

    Список интеграций системы взаимодействия

  4. Откройте приложение, в которое вы добавили форму для создания интеграций, и перейдите на эту форму. Нажмите кнопку + Добавить интеграцию. Укажите имя и наименование ключа интеграции. В поле Вид интеграции выберите Telegram. На вкладке Параметры введите токен бота:

    Создание интеграции

  5. Выберите участников обсуждения:

    Выбор участников обсуждения

    Все выбранные участники смогут взаимодействовать с пользователем Telegram от одного лица.

  6. Нажмите кнопку Сохранить и закрыть. Интеграция должна появиться в списке доступных интеграций.

    От�ображение созданной интеграции в списке доступных интеграций

  7. Когда пользователь Telegram отправит сообщение вашему Telegram-боту, в системе взаимодействия будет создан внешний пользователь, а в разделе Обсуждения — новое обсуждение, в котором можно вести переписку:

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

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

примечание

Обратите внимание, что интеграцию нельзя удалить, ее можно только деактивировать. Для этого откройте форму редактирования интеграции и снимите галочку Использовать интеграцию. В списке доступных интеграций в колонке Использование интеграция будет отображаться как неактивная — без галочки в колонке Использование.

Работа с интеграциями в коде

В «1С:Шине» свойства и методы отдельной интеграции системы взаимодействия с внешним подключением описываются типом ИнтеграцияВзаимодействия.

Получение информации о внешних системах

Чтобы получить типы внешних систем, поддерживаемых сервером взаимодействия, используйте метод ПолучитьВидыВнешнихСистем(), который возвращает читаемый массив строк с названием поддерживаемых систем:

пер Виды = СистемаВзаимодействия.ПолучитьВидыВнешнихСистем()
// Виды: [WebChat, Telegram, VK, Webhook, WhatsApp Devino]

С помощью метода ПолучитьОписаниеВнешнейСистемы() вы можете получить объект типа ОписаниеВнешнейСистемыВзаимодействия с двумя свойствами:

  • ВидВнешнейСистемы — строка с названием описываемой внешней системы;
  • ОписанияПараметров — массив объектов типа ОписаниеПараметраВнешнейСистемыВзаимодействия с именем параметра и признаком обязательности.
пер ОписаниеСистемы: ОписаниеВнешнейСистемыВзаимодействия = СистемаВзаимодействия.ПолучитьОписаниеВнешнейСистемы("Telegram")
// ВидВнешнейСистемы: Telegram
// ОписаниеПараметров:
// Имя: token
// Обязательный: Истина

Создание интеграций

Методы для работы с интеграциями содержатся в типе СистемаВзаимодействия пространства имен Стд::СистемаВзаимодействия:

  • СоздатьИнтеграцию(),
  • РедактироватьИнтеграцию(),
  • ПолучитьИнтеграции().

Пример создания интеграций с Telegram и WebChat

метод СоздатьИнтеграциюСТелеграм(КлючИнтеграции: Строка, Токен: Строка)
пер ПараметрыИнтеграции = <Строка, Строка>{:}
ПараметрыИнтеграции.Вставить("token", Токен)

СоздатьИнтеграцию("Telegram", КлючИнтеграции, ПараметрыИнтеграции)
;

метод СоздатьИнтеграциюСВебЧатом(КлючИнтеграции: Строка, Заголовок: Строка): Ууид
пер ПараметрыИнтеграции = <Строка, Строка>{:}
ПараметрыИнтеграции.Вставить("allowVideoconferences", "allowed")
ПараметрыИнтеграции.Вставить("colorTheme", "auto")
ПараметрыИнтеграции.Вставить("defaultApplicationUserCameraState", "on")
ПараметрыИнтеграции.Вставить("displayUserPictures", "true")
ПараметрыИнтеграции.Вставить("languageCode", "en")
ПараметрыИнтеграции.Вставить("mobileButtonOrientation", "rightBottom")
ПараметрыИнтеграции.Вставить("orientation", "bottom")
ПараметрыИнтеграции.Вставить("orientationPadding", "100")
ПараметрыИнтеграции.Вставить("signKey", "")
ПараметрыИнтеграции.Вставить("titleBackColor", "#FBED9E")
ПараметрыИнтеграции.Вставить("titleText", Заголовок)
ПараметрыИнтеграции.Вставить("titleTextColor", "#333333")

возврат СоздатьИнтеграцию("WebChat", КлючИнтеграции, ПараметрыИнтеграции)
;

метод СоздатьИнтеграцию(ТипВнешнейСистемы: Строка, КлючИнтеграции: Строка, ПараметрыИнтеграции: ЧитаемоеСоответствие<Строка, Строка>): Ууид
пер ОписаниеСистемы: ОписаниеВнешнейСистемыВзаимодействия = СистемаВзаимодействия.ПолучитьОписаниеВнешнейСистемы(ТипВнешнейСистемы)

знч Пользователь = СистемаВзаимодействия.ПолучитьТекущегоПользователяВзаимодействия()
пер УчастникиОбсуждения = [Пользователь.Ид]

пер НазваниеИнтеграции = "Интеграция_WebChat"
пер Таймаут = 30с

пер НоваяИнтеграцияИд: Ууид? = СистемаВзаимодействия.СоздатьИнтеграцию(
НазваниеИнтеграции,
ОписаниеСистемы.ВидВнешнейСистемы,
ПараметрыИнтеграции,
УчастникиОбсуждения,
КлючИнтеграции,
Истина,
Таймаут)

возврат НоваяИнтеграцияИд
;

Поиск и редактирование интеграции

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

метод РедактированиеИнтеграции(КлючИнтеграции: Строка)
пер НужнаяИнтеграция = СистемаВзаимодействия.НайтиИнтеграцию(КлючИнтеграции)
СистемаВзаимодействия.РедактироватьИнтеграцию(ИдИнтеграции = НужнаяИнтеграция.Ид, Активно = Ложь)
;

Получение списка всех интеграций

Чтобы получить информацию обо всех доступных в системе взаимодействия интеграциях, воспользуйтесь методом ПолучитьИнтеграции():

пер Интеграции = СистемаВзаимодействия.ПолучитьИнтеграции()