метод REST scope: landing

landing.repowidget.register

Добавить виджет на Вайб

Кто может выполнять: любой пользователь

Описание

Метод landing.repowidget.register добавляет виджет для Вайба. Возвращает ошибку или идентификатор ID добавленного виджета.

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

Параметры

code string обязательный

Уникальный код виджета. Настоятельно рекомендуется использовать какой-либо уникальный префикс для своих виджетов, чтобы избежать риск совпадения кодов с виджетами других разработчиков

fields object обязательный

Значения полей для создания виджета

Параметр fields

NAME string обязательный

Название виджета

PREVIEW string обязательный

URL картинки-обложки виджета для слайдера выбора виджетов

DESCRIPTION string необязательный

Описание виджета

CONTENT string обязательный

Верстка виджета с использованием конструкций Vue

SECTIONS string обязательный

Код раздела, в который будет добавлен виджет. Список доступных разделов:

  • widgets_company_life — Жизнь компании
  • widgets_new_employees — Новым сотрудникам
  • widgets_team — Команда
  • widgets_automation — Автоматизация
  • widgets_events — Встречи и события
  • widgets_profile — Профиль сотрудника
  • widgets_tasks — Задачи и проекты
  • widgets_sales — Продажи и клиенты
  • widgets_hr — HR
  • widgets_other — Другое
  • widgets_separators — Переходы и разделители
  • widgets_text — Текст
  • widgets_image — Картинки
  • widgets_video — Видео
WIDGET_PARAMS object обязательный

Параметры для vue-шаблонизатора. Без них метод вернет ошибку REQUIRED_FIELD_NO_EXISTS

ACTIVE char необязательный

Активность виджета. Принимает значения:

  • Y - виджет активен и доступен
  • N - виджет неактивен и недоступен
SITE_TEMPLATE_ID string необязательный

Привязка виджета к определенному шаблону сайта. Только для коробочного Битрикс24!

Примеры запроса

// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'

declare const $b24: B24Frame

const content = '<div class="my-app-w-container"><!-- Vue template --></div>'

try {
  const response = await $b24.actions.v2.call.make<number>({
    method: 'landing.repowidget.register',
    params: {
      code: 'my_widget',
      fields: {
        NAME: 'My widget',
        PREVIEW: 'https://my-app.com/vibe_preview.jpg',
        CONTENT: content,
        SECTIONS: 'widgets_company_life',
        WIDGET_PARAMS: {
          rootNode: '.my-app-w-container',
          lang: {
            ru: {
              W_TITLE: 'People and their ages',
              W_EMPTY: 'No data',
            },
            en: {
              W_TITLE: 'People and their ages',
              W_EMPTY: 'Empty',
            },
          },
          handler: 'https://my-app.com/vibe.php',
          style: 'https://my-app.com/vibe.css',
          demoData: {
            desc: 'Just a test widget',
            count: 420,
            persons: [
              { name: 'Person 1', age: 21 },
              { name: 'Person 2', age: 42 },
              { name: 'Person 3', age: 123 },
            ],
          },
        },
      },
    },
    requestId: Text.getUuidRfc4122()
  })

  // The payload is available only on a successful response
  if (!response.isSuccess) {
    console.error(response.getErrorMessages().join('; '))
  } else {
    const result = response.getData()!.result
    console.info('Registered widget ID:', result)
  }
} catch (error) {
  // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
  console.error(error)
}

Ответ

HTTP-статус: 200

{
    "result": 10,
    "time": {
        "start": 1713949410.036288,
        "finish": 1713949411.632775,
        "duration": 1.596487045288086,
        "processing": 0.6458539962768555,
        "date_start": "2024-04-24T11:03:30+02:00",
        "date_finish": "2024-04-24T11:03:31+02:00",
        "operating": 0
    }
}

Возвращаемые данные

result integer

Идентификатор добавленного виджета

time time

Информация о времени выполнения запроса

Обработка ошибок

HTTP-статус: 400

{
    "error":"REQUIRED_FIELD_NO_EXISTS",
    "error_description":"Отсутствует обязательное поле CONTENT"
}
Код Описание Значение
REQUIRED_FIELD_NO_EXISTS В параметре fields не передано обязательное поле: NAME, PREVIEW, CONTENT, SECTIONS или WIDGET_PARAMS. Имя поля подставляется в текст ошибки
REQUIRED_PARAM_NO_EXISTS В параметре WIDGET_PARAMS не передан обязательный параметр: rootNode, handler или demoData. Имя параметра подставляется в текст ошибки

Что будем искать? Например,Продвижение

Этот сайт использует куки-файлы. Оставаясь на сайте, Вы соглашаетесь на их использование. Для получения дополнительной информации, пожалуйста, ознакомьтесь с политикой в отношении персональных данных.