Skip to content

Инициализация

Убедитесь, что предыдущие шаги выполнены успешно
  • SDK добавлено в ваше мобильное приложение (в проекте появилась зависимость CarrotSDK)
Результат шага
  • Приложение запустилось без ошибок
  • В консоли появилась надпись “SDK init success”

Метод для инициализации

swift
import CarrotSDK

Carrot.shared.setup(
		withApiKey: String,
		useEuServer: Bool,
		withAppGroup: String,
		isServiceMode: Bool,
		successHandler: {},
		errorHandler: { Error in }
)
objective-c
#import "CarrotSDK/CarrotSDK.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  	....
    Carrot *carrot = [Carrot shared];
    [
        carrot
        setupWithApiKey: "API KEY"
        successHandler: ^(){
            NSLog(@"Carrot quest SDK connected");
        }
        errorHandler: ^(NSString *error){
            NSLog(@"Carrot quest SDK error: %@", error);
    }];
  	....
    return YES;
}

Обязательными здесь являются только 3: withApiKey, successHandler, errorHandler.

  • withApiKey - apiKey в String, который мы взяли на этапе получения ключей
  • useEuServer - опциональный параметр. Данный параметр отвечает за пересылку трафика через европейский сервер.
  • withAppGroup - опциональный параметр. Отвечает за название апп группы приложения, куда установлен SDK, предотвращает дублирование пушей, а также осуществляет сбор статистики с пушей. Более подробно можно ознакомиться в следующем разделе: Дублирование пушей
  • isServiceMode - опциональный параметр. Отвечает за внутренние характеристики.
  • successHandler - обязательная функция, которая выполняется при успешной инициализации SDK. Помогает при устранении ошибок
  • errorHandler - функция, которая выполняется при неуспешной инициализации SDK. В качестве параметра возвращает текстовое описание ошибки

Для чего использовать метод с коллбэком

Все коллбэки в Carrot quest SDK для iOS обязательные, чтобы пользователи знали, что они есть. Методы с коллбэками предоставляют возможность понять, было ли инициализировано SDK, и произошло ли всё правильно. Если нет, то они помогут определить, какие произошли ошибки.

swift
import CarrotSDK

Carrot.shared.setup(
		withApiKey: "00-0a0a0a0a0a0a0000aa",
		successHandler: {
				print("Все успешно инициализированно")
				// Можно тут выполнить какие-то действия
				// По завершению инициализации
		},
		errorHandler: { error in 
				print("Что-то пошло не так. Ошибка: \(error)")
		}
)
objective-c
#import "CarrotSDK/CarrotSDK.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  	....
    Carrot *carrot = [Carrot shared];
    [
        carrot
        setupWithApiKey: "API KEY"
        successHandler: ^(){
            NSLog(@"Все успешно инициализированно");
// Можно тут выполнить какие-то действия
// По завершению инициализации
        }
        errorHandler: ^(NSString *error){
            NSLog(@"Что-то пошло не так. Ошибка: %@", error);
    }];
  	....
    return YES;
}

Авторизация пользователей

Если в вашем приложении присутствует авторизация пользователей, вы можете передать ID пользователя в Carrot quest. Существует два способа авторизации.

Передача ID напрямую

Передача ID напрямую через userAuthKey :

swift
import CarrotSDK

let userId: String = "USER ID"
let userAuthKey: String = "USER AUTH KEY"

Carrot.shared.auth(
    withUserId: userId, 
    withUserAuthKey: userAuthKey,
        successHandler: { carrotId
                print("Carrot quest SDK user auth successed")
        },
        errorHandler: { error in
            print("Carrot quest SDK user auth error: " + error)
        }
)
objective-c
#import "CarrotSDK/CarrotSDK.h"

Carrot *carrot = [Carrot shared];
[
  carrot
  authWithUserId: userId
  withUserAuthKey: userAuthKey
  successHandler: ^(NSString *carrotId){
      NSLog(@"Carrot quest SDK user auth successed, CarrotId: %@", carrotId);
  }
  errorHandler: ^(NSString *error){
      NSLog(@"Carrot quest SDK user auth error: %@", error);
}];

Передача через hash

Также вы можете передать ID через hash, генерируемый у вас на бэке:

swift
import CarrotSDK

let userId: String = "USER ID"
let hash: String = "HASH FROM BACKEND"

Carrot.shared.hashedAuth(
    withUserId: userId, 
    withHash: hash,
        successHandler: { carrotId
                print("Carrot quest SDK user auth successed")
        },
        errorHandler: { error in
            print("Carrot quest SDK user auth error: " + error)
        }
)
objective-c
#import "CarrotSDK/CarrotSDK.h"

Carrot *carrot = [Carrot shared];
[
  carrot
  authWithUserId: userId
  withHash: hash
  successHandler: ^(NSString *carrotId){
      NSLog(@"Carrot quest SDK user auth successed, CarrotId: %@", carrotId);
  }
  errorHandler: ^(NSString *error){
      NSLog(@"Carrot quest SDK user auth error: %@", error);
}];

Проверка инициализации

Для проверочного запуска нужно добавить принты в замыкания success и error:

swift
import CarrotSDK

Carrot.shared.setup(
		withApiKey: "YOUR-API-KEY",
		successHandler: {
			print("SDK init success")
		},
		errorHandler: { error in 
				print("SDK init error: \(error)")
		}
)
objective-c
#import "CarrotSDK/CarrotSDK.h"

[[Carrot shared] setupWithApiKey:@"YOUR-API-KEY"
                  successHandler:^{
                      NSLog(@"SDK init success");
                  }
                    errorHandler:^(NSString *error) {
                      NSLog(@"SDK init error: %@", error);
                    }];

При успешном запуске в консоли появится надпись “SDK init success”