Меню

Заполнение множественного пользовательского свойства типа "строка" через 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: заметки разработчика

Прятать или показывать описание раздела каталога

В новых компонентах и шаблонах catalog.section есть не документированный и не выводимый параметр: "Скрывать описание раз...

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

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

Настройка выгрузки товаров в Яндекс Маркет с сайта Битрикс

Настройка выгрузки в Яндекс маркет в формате yml, выполняется достаточно просто, кроме одной заморочки: в типовой постав...

Отключить поиск по описаниям товаров в Битрикс

Иногда, нужно отключить поиск по описаниям анонсов и детальному описанию товаров, при разработке сайтов на Битрикс. Сдел...

Если предложение SKU в корзине, поменять кнопку добавления на "В корзине"

Данная заметка является дополнением к ранее опубликованной: Если товар в корзине, поменять значение input на "В корзине"...

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

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

Рассылка новинок каталога в автоматическом режиме

Что бы реализовать рассылку новинок каталога на email-ы пользователей, можно воспользоваться событием OnBeforeIBlockElem...

Дополнительные опции/услуги, добавляемые в корзину, в карточке товаров

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

Ссылки для добавления и удаления товара из сравнения в Битрикс

Просто оставляю это здесь, вставка ссылок на добавление и удаление товара из сравнения, если уже добавлен. Чуть позже до...