Меню

Заполнение множественного пользовательского свойства типа "строка" через 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
Читают тему (гостей: 1)
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

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

Скопировать номер телефона из поля пользователя в телефон для регистрации

Задача, на конкретном сайте: раньше все пользователи регистрировались по стандартному режиму, через логин(e-mail) и паро...

Вывести торговые предложения (SKU) как простые товары в каталоге, с учетом раздела.

Задача: Отобразить SKU товаров в каталоге как простые товары, учитывая текущий раздел. Необходимо вывести все торговые п...

Установка счетчика Яндекс.Метрики на сайт с Content Security Policy (CSP)

Если на вашем сайте не отображаются данные о кликах и скроллинге в Яндекс.Метрике, вероятнее всего, это связано с настро...

Почтовое событие на создание нового элемента инфоблока, через API

Иногда при разработке сайта требуется реализовать функционал добавления элементов инфоблока простыми пользователям.Будет...

FTP доступ на Виртуальной машине Битрикс

Бывает что нужно открыть FTP доступ к заранее известной папке на сайте под управлением 1С Битрикс, который работает на в...

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

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

Удалить товары из корзины, если есть определенные товары.

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

Звездочки в рейтинге Битрикс статей и товаров каталога

Задача: изменить вывод рейтинга элемента на звездочки, с помощью шаблона iblock.vote в товарах и новостях.

Проверка на наличие элементов, текущего пользователя, в заданном инфоблоке.

Если стоит задача, определить наличие элементов созданных пользователем на сайте. Можно воспользоваться API: CUser и CIB...