Skip to content

SenlerBot/senler-integration-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

senler-integration-bot

Библиотека для связи вашей интеграции с Senler

npm i senler-integration-bot

Документация Интеграций Senler.

Чтение настроек

При открытии модального окна и загрузки интеграции через iframe. Событие onload. Senler отправляет запрос setData c настройками из шага.

Интеграция обрабатывает запрос следующим образом:

import IntegrationConnect from "senler-integration-bot/src/index.js";

integrationConnect.route('setData', (message) => {
        let settings = message.request.payload;
        if ('private' in settings) {
            setPrivateSettings(JSON.parse(settings.private));
        }
        if ('public' in settings) {
            setPublicSettings(JSON.parse(settings.public))
        }
        message.response.success = true;
        message.send();//Отправим ответ timeout 50 сек
});

Сохранение настроек

При нажатии кнопки "Сохранить" в модальном окне настроек интеграции, Senler отправляет запрос getData

Интеграция обрабатывает запрос следующим образом:

 integrationConnect.route('getData', (message) => {
    message['response'] = {
        payload: {},
        success: true
    };

    message.response.payload['public'] =  JSON.parse(localStorage.getItem('public_settings'));
    message.response.payload['private'] = JSON.parse(localStorage.getItem('private_settings'));

    message.response.payload['command'] = 'Отправить сообщение';
    message.response.payload['description'] = 'ChatId 1000000';

    message.send();//Отправим ответ timeout 50 сек
});

Cтруктра данных Window.postMessage() сообщения

{
  "payload": {
    "public": "user name %first_nmae% user fam %last_name% \nvkid= %vk_id%",
    "private": [
      {
        "id": "342173_268775_1668242955756",
        "chat_id": "1000000",
        "token": "mytoken123",
        "user_id": "342173_268775_1668242955756"
      }
    ],
    "command": "Отправить сообщение",
    "description": "ChatId 1000000"
  }
}
  • public - публичные настройки
  • private - приватные настройки, очищаются при копировании бота
  • command - название команды в шаге бота
  • description - описание команды в шаге бота

Для браузера dist/bundle.js

<script src="https://unpkg.com/senler-integration-bot/dist/bundle.js"></script>