Перейти к основному содержимому
Altcraft Docs LogoAltcraft Docs Logo
Пользователям iconПользователям
Разработчикам iconРазработчикам
Администраторам iconАдминистраторам
Русский
  • Русский
  • English
Войти
    API пользователяВзаимодействие с APIМатчинг
      Профилиarrow
    • Импортировать профильОбновить профильДобавить профиль в базу данныхПолучить информацию о профилеИмпортировать профиль в RabbitMQМассовое добавление профилей в базу данныхМассовое обновление профилейМассовый импорт профилейПриостановить все профили в базе данныхВосстановить все приостановленные профили в базе данныхУдалить профильУпрощенный импорт профиляФункциональное обновление полей базыФункциональное обновление полей подпискиВыгрузка профилей в файлПолучение данных по нескольким профилямОбъединение нескольких профилейОтписать профиль от ресурсаРазделение профиля
        Историяarrow
      • Получить историю одного профиляПолучить историю нескольких профилей
        Связи профилейarrow
      • Добавить связьУдалить связьУсилить/ослабить связьПерезаписать значения свойств связиПолучить информацию о связях профиляПолучить список связей профиля
        Подпискиarrow
      • Добавить или редактировать подпискуПолучить все подписки профиляПолучить все подписки нескольких профилейПолучить информацию о подписке профиляУдалить подписку профиляВосстановить удаленную подписку профиляПриостановить все подпискиВосстановить все приостановленные подписки
      Базы данныхarrow
    • Получить список баз данныхПолучить информацию о базе данныхПолучить информацию о полях базы данныхОчистка базы данных для тестированияПолучить статистику по базе данныхОбновить статистику по базе данных
      Ресурсыarrow
    • Получить список ресурсовПолучить информацию о ресурсеПолучить информацию о полях подписки ресурсаПолучить статистику по ресурсамОбновить статистику по ресурсам
      Сегментыarrow
    • Добавить сегментОбновить сегментПолучить информацию о сегментеПолучить список сегментовУдалить сегментПолучить статистику по сегментамОбновить статистику по сегментамДобавить или удалить профильПолучить данные профилей статического или обновляемого сегмента
      Стоп-спискиarrow
    • Добавить стоп-списокПереименовать стоп-списокПолучить информацию о стоп-спискеПолучить информацию о нескольких стоп-списковУдалить стоп-списокВыгрузить данные из стоп-списка в файл
        Добавление и удаление из стоп-спискаarrow
      • Проверить email-адрес в стоп-спискеДобавить email-адрес в стоп-списокДобавить один или несколько email-адресов в стоп-списокУдалить email-адрес из стоп-спискаУдалить все email-адреса из стоп-спискаПроверить домен в стоп-спискеДобавить домен в стоп-списокДобавить один или несколько доменов в стоп-списокУдалить домен из стоп-спискаУдалить все домены из стоп-спискаПроверить номер телефона в стоп-спискеДобавить номер телефона в стоп-списокДобавить один или несколько номеров в стоп-списокУдалить номер из стоп-спискаУдалить все номера из стоп-списка
      Шаблоныarrow
    • Получить список шаблоновПолучить информацию о шаблонеУдалить шаблонДобавить шаблон сообщенияОбновить шаблон сообщенияChannel object
      Рассылкиarrow
    • Получить список рассылокПолучить информацию о рассылкеПолучить лог рассылкиКлонировать рассылкуУдалить рассылкуАктивировать рассылкуДеактивировать рассылкуПолучить статус рассылки
        Броадкаст рассылкиarrow
      • Получить список броадкаст рассылокПолучить информацию о броадкаст рассылкеДобавить броадкаст рассылкуОбновить броадкаст рассылкуЗапустить броадкаст рассылку
        Регулярные рассылкиarrow
      • Получить список регулярных рассылокПолучить информацию о регулярной рассылкеДобавить регулярную рассылкуОбновить регулярную рассылкуЗапустить регулярную рассылку
        Триггерыarrow
      • Получить список триггерных рассылокПолучить информацию о триггерной рассылкеДобавить триггерную рассылкуОбновить триггерную рассылкуЗапуск триггерной рассылки (API call)Импорт профиля + Отправка триггераЗадание на массовую отправку триггераЗадание на массовый импорт профилей + отправка триггераМассовая отправка триггераМассовый импорт профилей + отправка триггераКлонировать триггер рассылкуData array
      Кампанииarrow
    • Получить информацию о кампанииПолучить список кампанийАктивация кампанииЗавершение кампанииДеактивация кампанииПолучить статус кампании
      Сценарии (цепочки)arrow
    • Отправить профиль клиента в сценарийОдновременный импорт и запуск профиля в сценарийМассовый импорт и запуск профилей в сценарийЗадание на массовый импорт и запуск профилей в сценарийПолучить список сценариевАктивировать сценарийДеактивировать сценарий
      Промокодыarrow
    • Импортировать промокодыПолучить информацию о промокодеАктивировать промокодОбновить промокодПривязать промокод к профилюОтвязать промокод от профиляПолучить все промокоды
      Программы лояльностиarrow
    • Получить уровень профиля в программе лояльностиЭкспорт транзакций балловСгораемые баллы за периодПолучение транзакций по счёту профиляПолучение списка триггерных промоакцийНачисление баллов участникуСписание баллов участникаПодтверждение временной транзакцииПредварительный расчет заказаПодтверждение заказаОтмена временной транзакцииОтмена балльной транзакцииПолучение баланса балльного счётаРегистрация участника в программе лояльностиУдаление участника из программы лояльности
      Целиarrow
    • Регистрация события достижения цели
      Пуши приложенийarrow
    • Обработка и добавление подпискиДобавить события с app push
      Маркетarrow
      • Объекты маркетаarrow
      • Структура заказа (order data object)Product data objectСтруктура SKU (SKU data object)Категории (categories array)Custom fields array
        Заказыarrow
      • Импорт заказа и статусов позицийПолучить список заказовУдалить заказПолучить статус заказаИзменение статуса позиции заказа
        Продукты и SKUarrow
      • Импорт продуктов, SKU и категорийПолучение списка продуктовПолучение списка SKUИмпорт SKU и категорийУдалить продуктыУдалить SKU
      Отчеты и статистикаarrow
    • Получить сводный отчетПолучить отчет о возвратахПолучить отчет о недоставках
      Сендерыarrow
    • Получить список сендеров
        Виртуальные сендерыarrow
      • Получить список виртуальных сендеровПолучить информацию о виртуальном сендереКлонировать виртуальный сендерДобавить виртуальный сендерОбновить виртуальный сендерУдалить виртуальный сендер
      Объектыarrow
    • AKMTA objectContent objectEmail rule objectFile objectProfile data objectSMS rule objectSender objectSender typesStart schedule objectSubscription objectTrigger types
      Запросы к внешним базам данныхarrow
      • Запросы сегментацииarrow
      • Добавить запрос сегментацииОбновить запрос сегментацииПолучить информацию о запросе сегментацииПолучить список запросов на сегментациюУдалить запрос сегментации
        Запросы для шаблоновarrow
      • Добавить запрос для шаблоновОбновить запрос для шаблоновПолучить информацию о запросе для шаблоновПолучить список запросов для шаблоновУдалить запрос для шаблонов
      Прочееarrow
    • Загрузить файлПолучить веб-версию сообщенияPush провайдерыДедупликация запросовРабота с API через RabbitMQСписок гендерных идентификацийПолучить допустимые значения полей browsers, devices, tz, oses, languages
    Список API-методовИмпорт и настройка коллекции API-методов в Postman
      SDKarrow
      • mSDKarrow
        • Androidarrow
        • Быстрый стартКонфигурация SDKФункционал SDKПубличный API SDK
            Настройка провайдеровarrow
          • Firebase Cloud MessagingHuawei Mobile ServicesRuStore
          iOSarrow
        • Быстрый стартКонфигурация SDKФункционал SDKПубличный API SDK
            Настройка провайдеровarrow
          • Apple Push Notification ServiceFirebase Cloud MessagingHuawei Mobile Services
          React Native (Android/iOS)arrow
        • Быстрый стартКонфигурация SDKФункционал SDKПубличный API SDKНастройка провайдеров
        Работа с ролевым и JWT-токеном
  • SDK
  • mSDK
  • Android
  • Быстрый старт

Быстрый старт

В статье приведен пример быстрой интеграции Altcraft mSDK с Firebase Cloud Messaging (FCM). После выполнения указанных шагов ваше приложение сможет получать push-уведомления Altcraft.

Для использования Huawei Mobile Services или RuStore необходимо добавить соответствующие SDK в проект и реализовать их интерфейсы, используя тот же подход, что показан для Firebase.

Шаг 0. Предварительные условия​

  • SDK push-провайдеров интегрированы в проект приложения (см. инструкции по интеграции push провайдеров);
  • В приложение добавлен класс, расширяющий Application();
  • Все необходимые сущности (ресурс, рассылка, шаблон, база профилей) заранее созданы в платформе Altcraft;
  • Для отправки push-уведомлений на устройствах с Android 13 (Tiramisu) требуется явное разрешение пользователя.

Шаг 1. Подключение Altcraft mSDK к приложению​

  • Добавьте зависимость библиотеки в файл build.gradle.kts уровня приложения (app level).
    dependencies {
implementation("com.altcraft:android-sdk:1.0.3")
}
  • Выполните синхронизацию изменений Gradle.

Шаг 2. Реализация JWTInterface​

Выполните реализацию интерфейса SDK, предназначенного для предоставления JWT-токена.

В модуле приложения создайте класс, реализующий JWTInterface, и переопределите getJWT():

import com.altcraft.sdk.interfaces.JWTInterface

class JWTProvider(private val context: Context /** добавьте свойство context если это необходимо*/) : JWTInterface {
override fun getJWT(): String?{
// ваш код, возвращающий актуальный JWT-токен
}
}
Обратите внимание
  • getJWT() — синхронная функция. Поток выполнения SDK будет приостановлен до получения JWT;
  • Рекомендуется, чтобы getJWT() возвращал значение немедленно из кэша (in-memory, SharedPreferences или EncryptedSharedPreferences). Это ускорит выполнение запросов;
  • Желательно подготовить актуальный JWT как можно раньше, например, на старте приложения, и сохранить его в кэш, чтобы при обращении SDK токен был доступен без задержек. При отсутствии значения допустимо вернуть null.
Пример реализации с использованием suspend-функции получения токена
import android.content.Context
import com.altcraft.sdk.interfaces.JWTInterface
import kotlinx.coroutines.runBlocking

class JWTProvider(private val context: Context /** добавьте свойство context если это необходимо*/) : JWTInterface {
private suspend fun fetchJwt(context: Context): String? {
// ваш код, возвращающий актуальный JWT-токен
return jwt
}

override fun getJWT(): String? = runBlocking {
fetchJwt(context)
}
}

Шаг 3. Регистрация провайдера JWT​

Зарегистрируйте провайдера JWT в Application.onCreate():

import android.app.Application
import com.altcraft.sdk.AltcraftSDK

class App : Application() {
override fun onCreate() {
super.onCreate()
AltcraftSDK.setJWTProvider(JWTProvider(/** добавьте свойство context если это необходимо*/))
}
}

Шаг 4. Реализация интерфейса FCM​

В модуле приложения создайте класс, реализующий FCMInterface:

Пример реализации
import com.altcraft.sdk.interfaces.FCMInterface
import com.google.firebase.Firebase
import com.google.firebase.messaging.FirebaseMessaging
import com.google.firebase.messaging.messaging
import kotlinx.coroutines.tasks.await

/**
* FCM implementation for managing Firebase Cloud Messaging tokens.
*
* Provides methods to retrieve and delete FCM tokens via the Firebase SDK.
*/
class FCMProvider : FCMInterface {

/**
* Retrieves the current FCM token.
*
* Returns `null` if an error occurs during retrieval.
*
* @return The FCM token or `null` on failure.
*/
override suspend fun getToken(): String? {
return try {
Firebase.messaging.token.await()
} catch (e: Exception) {
null
}
}

/**
* Deletes the current FCM token.
*
* Invokes [completion] with `true` if successful, `false` otherwise.
*
* @param completion Callback with the result of the deletion.
*/
override suspend fun deleteToken(completion: (Boolean) -> Unit) {
try {
FirebaseMessaging.getInstance().deleteToken().addOnCompleteListener {
completion(it.isSuccessful)
}
} catch (e: Exception) {
completion(false)
}
}
}

Шаг 5. Создание сервиса, расширяющего FirebaseMessagingService()​

В модуле приложения создайте класс, расширяющий FirebaseMessagingService, и реализуйте в нём метод onMessageReceived() с вызовом AltcraftSDK.PushReceiver.takePush() для передачи данных push-уведомления в SDK:

Пример создания сервиса
import com.altcraft.sdk.AltcraftSDK
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage

/**
* FCM service for handling push tokens and messages.
*/
class FCMService : FirebaseMessagingService() {

/**
* Called when a new FCM token is generated.
*
* @param token The new FCM token.
*/
override fun onNewToken(token: String) {
super.onNewToken(token)
}

/**
* Called when a push message is received.
*
* Forwards the message to all receivers with additional metadata.
*
* @param message The received [RemoteMessage].
*/
override fun onMessageReceived(message: RemoteMessage) {
super.onMessageReceived(message)

AltcraftSDK.PushReceiver.takePush(this@FCMService, message.data)
}
}

Шаг 6. Регистрация сервиса FCM в манифесте приложения​

Зарегистрируйте сервис Firebase Cloud Messaging в AndroidManifest.xml приложения:

<!-- FCM service -->
<service
android:name="<your_package_name>.FCMService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>

Шаг 7. Регистрация провайдера FCM в Application.onCreate()​

Зарегистрируйте провайдера Firebase Cloud Messaging в Application.onCreate()

import android.app.Application
import com.altcraft.fcm.FCMProvider
import com.altcraft.sdk.AltcraftSDK

class App : Application() {
override fun onCreate() {
super.onCreate()
AltcraftSDK.pushTokenFunctions.setFCMTokenProvider(FCMProvider())
}
}

Шаг 8. Инициализация SDK​

В Application.onCreate() создайте переменную конфигурации и выполните инициализацию с помощью функции initialization().

Обратите внимание — функция initialization() должна выполняться после регистрации всех используемых провайдеров (и JWT-провайдера, и провайдеров push-токенов).

Подробнее об инициализации
AltcraftSDK
// Инициализация SDK и установка конфигурации
└── fun initialization(context: Context, configuration: AltcraftConfiguration, complete: ((Result<Unit>) -> Unit)? = null): Unit

fun initialization(context: Context, configuration: AltcraftConfiguration, complete: ((Result<Unit>) -> Unit)? = null): Unit

Пример инициализации:

import android.app.Application
import com.altcraft.sdk.AltcraftSDK
import <your_package_name>.FCMProvider
import com.altcraft.sdk.config.AltcraftConfiguration

class App : Application() {
override fun onCreate() {
super.onCreate()
AltcraftSDK.setJWTProvider(JWTProvider(applicationContext))
AltcraftSDK.pushTokenFunctions.setFCMTokenProvider(FCMProvider())

val config = AltcraftConfiguration.Builder(
apiUrl = "https://pxl-your-instance.altcraft.com",
icon = R.drawable.your_icon
).build()

// установите необходимые параметры конфигурации (см. README Android MSDKv2)

AltcraftSDK.initialization(context = this, configuration = config)
}
}

Шаг 9. Выполнение подписки на push-уведомления​

С помощью функции pushSubscribe() выполните подписку на push-уведомления в любом удобном для вас месте кода, например, после предоставления разрешения на отправку уведомлений:

AltcraftSDK
└── val pushSubscriptionFunctions: PublicPushSubscriptionFunctions
// Подписка на push-уведомления (status = SUBSCRIBED)
├─ fun pushSubscribe(
context: Context,
sync: Boolean = true,
profileFields: Map<String, Any?>? = null,
customFields: Map<String, Any?>? = null,
cats: List<DataClasses.CategoryData>? = null,
replace: Boolean? = null,
skipTriggers: Boolean? = null
): Unit

Пример выполнения подписки:

class MainActivity : ComponentActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

NotificationPermissionHandler.isGranted(
activity = this,
onGranted = {
if(isUnsubscribed()){
AltcraftSDK.pushSubscriptionFunctions.pushSubscribe(context = this)
}
}
)
}
}
Последнее обновление 12 мар. 2026 г.
Предыдущая страница
Android
Следующая страница
Конфигурация SDK
  • Шаг 0. Предварительные условия
  • Шаг 1. Подключение Altcraft mSDK к приложению
  • Шаг 2. Реализация JWTInterface
  • Шаг 3. Регистрация провайдера JWT
  • Шаг 4. Реализация интерфейса FCM
  • Шаг 5. Создание сервиса, расширяющего FirebaseMessagingService()
  • Шаг 6. Регистрация сервиса FCM в манифесте приложения
  • Шаг 7. Регистрация провайдера FCM в Application.onCreate()
  • Шаг 8. Инициализация SDK
  • Шаг 9. Выполнение подписки на push-уведомления
© 2015 - 2026 Altcraft. Все права защищены.