Меню

Заполнение множественного пользовательского свойства типа "строка" через API

RSS
Заполнение множественного пользовательского свойства типа "строка" через API
 
Заполнение множественного пользовательского свойства типа "строка" через API

Задача: когда пользователь заходит в мобильное приложение, нужно сохранить FCM токен устройства в пользовательское поле "Токены устройств". Поле является множественной строкой - так как у пользователя может быть не одно устройство.
 
В template.php стоит так же обвернуть скрипт проверкой на авторизацию пользователя:
Код
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();

if ($USER->IsAuthorized()) {?>
    <script>
        document.addEventListener('deviceready', onDeviceReady, false);
        function onDeviceReady() {
            setTimeout(() => {

                window.FirebasePlugin.getToken(function (token) {
                    // alert(token); // Сохраняем этот токен в базе данных сайта
                    // Отправляем токен на сервер
                    $.ajax({
                        url: '',
                        type: 'POST',
                        data: {
                            token: token
                        },
                        success: function(response) {
                            //console.log('Token saved successfully: ' + response);
                        },
                        error: function(xhr, status, error) {
                            //console.error('Error saving token: ' + error);
                        }
                    });
                }, function (error) {
                    //console.log(error);
                });
            }, 100);
        }
    </script>
<? } ?>

Либо, вообще, оставить template.php пустым, а скрипт подключить прямо в component.php
Код
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();

use Bitrix\Main\Loader;
use Bitrix\Main\UserTable;

Loader::includeModule("main");

global $USER;

if ($USER->IsAuthorized()) {
  $path = $this->GetPath();
    ?>
    <script src="<?=$path?>/script.js"></script>
<?if (
     $_SERVER['REQUEST_METHOD'] === 'POST' &&
     isset($_POST['token'])
) {
    $userId = $USER->GetID();
    $newToken = htmlspecialchars(trim($_POST['token']));

    ... ОСТАЛЬНОЙ КОД ...

    die(); // Завершаем выполнение скрипта после обработки AJAX-запроса
}

} // end if ($USER->IsAuthorized()) 

$this->includeComponentTemplate();
Изменено: Михаил Базаров - 18.05.2024 11:16:10
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Bst

Блог-note: заметки разработчика

Отфильтровать товары бренда и вывести по разделам каталога

Задача: на странице бренда, который выводится компонентом новостей, нужно показать все товары этого бренда из каталога. ...

Не дать пользователю купить больше одного товара, в Битрикс

Иногда нужно и такое: Например: на одном из разрабатываемых сайтов, мне нужно было создать всего 4 товара. при этом поку...

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

Задача: в магазине 20 складов, на всех есть остатки но нужно ограничить покупку товара только остатками на двух складах,...

Заполнить инфоблок брендов из свойства инфоблока с товарами

Задача: в интернет-магазине есть инфоблок с товарами, загружаемый из 1С, у которого заполнено свойство "Производите...

Вывести все разделы в которых находится элемент инфоблока

Если нужно вывести все разделы, со всей доступной информацией о них, внутри элемента инфоблока, например в карточке това...

Создание агента в 1С-Битрикс, на реальном примере

Задача: Каждый час нужно обновлять свойство элементов/товаров с типом строка "В наличии", вписывать в него либ...

Вывести свойство отдельно ото всех или исключить из всех

Иногда, на сайте, под управлением 1С-Битрикс, нужно вывести какое-то конкретное свойство отдельно ото всех, или вообще н...

Как получить свойства заказа в 1С-Битрикс: старые методы и современный API D7

Задача: Получить все доступные свойства заказа для всех активных типов плательщика из модуля магазина.

Уникальная СЕО информация для каждого торгового предложения в каталоге 1С-Битрикс

Задача: реализовать уникальную мета-информацию для каждого SKU в каталоге. У каждого ТП должны быть свои: заголовок h1, ...