Блог Горошко Андрея Bitrix24 Зарегистрировать СМС-провайдер или провайдер сообщений messageservice.sender.add

Зарегистрировать СМС-провайдер или провайдер сообщений messageservice.sender.add

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Зарегистрировать СМС-провайдер или провайдер сообщений messageservice.sender.add», разберем архитектурные особенности и предоставим готовые к интеграции примеры кода.

Зарегистрировать СМС-провайдер или провайдер сообщений messageservice.sender.add

Тут может не хватать некоторых данных — дополним в ближайшее время

  • не указаны типы параметров
  • не указана обязательность параметров
  • отсутствует ответ в случае успеха
  • отсутствует ответ в случае ошибки
  • Нет примеров на др. языках

> Scope: messageservice
>
> Кто может выполнять метод: администратор

Метод регистрирует новый провайдер сообщений

ПараметрОписание
CODEВнутренний идентификатор провайдера. Допустимые символы a-z, A-Z, 0-9, точка, дефис и нижнее подчеркивание.
TYPEТип провайдера.
HANDLERURL приложения, на который будут отправлены данные.
NAMEНазвание провайдера. Может быть строкой или ассоциативным массивом локализированных строк.
DESCRIPTIONОписание провайдера. Может быть строкой или ассоциативным массивом локализированных строк.

На HANDLER приходят данные:

  • module_id — модуль-инициатор. crm — значит сообщение отправлено из карточки (в будущем могут быть и другие варианты), bizproc — отправлено из Бизнес Процессов или робота.
  • bindings — параметр, актуальный только для module_id = crm. В нем содержится массив привязок сообщения к сущностям CRM (к чему привяжется дело).
  • workflow_id, document_id, document_type — параметры, актуальные только для module_id = bizproc. Параметры приходят не всегда: если отправляем из карточки, то их не будет.
  • message_id — уникальный идентификатор сообщения. По нему можно обращаться к messageservice.message.status.update.
  • message_to — номер получателя сообщения
  • message_body — текст сообщения

Практический пример и готовый код на PHP

  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'messageservice.sender.add',
    		{
    			CODE: 'provider1',
    			TYPE: 'SMS',
    			HANDLER: 'http:///',
    			NAME: 'Провайдер ***.ru',
    			DESCRIPTION: 'Провайдер ***.ru'
    		}
    	);
    	
    	const result = response.getData().result;
    	if(result.error())
    		alert("Error: " + result.error());
    	else
    		alert("Успешно: " + result);
    }
    catch( error )
    {
    	console.error('Error:', error);
    }
  • PHP
    try {
        $params = [
            'CODE'        => 'provider1',
            'TYPE'        => 'SMS',
            'HANDLER'     => 'http:///',
            'NAME'        => 'Провайдер ***.ru',
            'DESCRIPTION' => 'Провайдер ***.ru',
        ];
    
        $response = $b24Service
            ->core
            ->call(
                'messageservice.sender.add',
                $params
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        if ($result->error()) {
            echo 'Error: ' . $result->error();
        } else {
            echo 'Успешно: ' . $result->data();
        }
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error adding sender: ' . $e->getMessage();
    }
  • BX24.js
    var params = {
        CODE: 'provider1',
        TYPE: 'SMS',
        HANDLER: 'http:///',
        NAME: 'Провайдер ***.ru',
        DESCRIPTION: 'Провайдер ***.ru'
    };
    BX24.callMethod(
        'messageservice.sender.add',
        params,
        function(result)
        {
            if(result.error())
                alert("Error: " + result.error());
            else
                alert("Успешно: " + result.data());
        }
    );

Отправление из карточки CRM

Array
(
    [module_id] => crm
    [bindings] => Array
        (
            [0] => Array
                (
                    [OWNER_TYPE_ID] => 1
                    [OWNER_ID] => 98
                )

        )

    [properties] => Array
        (
            [phone_number] => +7*********
            [message_text] => test message
    )

    [type] => SMS
    [code] => example
    [message_id] => 72dd742c8270db0ddbbab92f98877537
    [message_to] => +7**********
    [message_body] => test message
    [ts] => 1506687055
    [auth] => /*auth*/

)

Отправление из Бизнес-процесса или робота.

Array
(
    [module_id] => bizproc
    [workflow_id] => 59ce38567ff2a5.26351167
    [document_id] => Array
        (
            [0] => crm
            [1] => CCrmDocumentLead
            [2] => LEAD_98
        )

    [document_type] => Array
        (
            [0] => crm
            [1] => CCrmDocumentLead
            [2] => LEAD
        )

    [properties] => Array
        (
            [phone_number] => +7*********
            [message_text] => test message
        )

    [type] => SMS
    [code] => example
    [message_id] => 8b3fc6cd0cb4a7b91f6632889cdf46e0
    [message_to] => +7*********
    [message_body] => test message
    [ts] => 1506687103
    [auth] => /*auth*/

)

💡 Экспертное мнение и рекомендации

Советы эксперта по интеграции:

  • Всегда используйте кэширование при частых запросах к messageservice.sender.add, чтобы разгрузить базу данных.
  • Соблюдайте стандарты PSR при написании обработчиков для «Зарегистрировать СМС-провайдер или провайдер сообщений messageservice.sender.add».
  • Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

Как использовать метод SDK crm.requisite.link.unregister в Битрикс24Как использовать метод SDK crm.requisite.link.unregister в Битрикс24

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Как использовать метод SDK crm.requisite.link.unregister в Битрикс24». Мы подготовили подробный разбор принципов работы и развернутые

Пригласить пользователей в группу sonet_group.user.inviteПригласить пользователей в группу sonet_group.user.invite

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Пригласить пользователей в группу sonet_group.user.invite». Вы узнаете экспертные методики работы с sonet_group.user.invite и

Событие при удалении лида onCrmLeadDeleteСобытие при удалении лида onCrmLeadDelete

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Событие при удалении лида onCrmLeadDelete». Мы подготовили подробный разбор принципов работы и развернутые примеры интеграции.