Импорт пользователей

Импортировать пользователей в Carrot quest можно двумя способами: через интерфейс и через API.

Импорт через интерфейс Carrot quest

В нашем интерфейсе реализован метод импорта пользователей, но есть ограничения в количестве импортируемых пользователей. За один раз можно загрузить только 4000 пользователей. Подробное описание работы с интерфейсом импорта пользователей можно прочитать в базе знаний.

Загрузка по REST API

Загрузить базу пользователей можно, используя REST API метод Установить свойства пользователя.

Важно! При загрузке пользователей нужно воздержаться от синхронного вызова API, т.к. это может вызвать значительные нагрузки на нашу систему и ваш токен заблокируется. Оптимальное количество обращений — 2-3 в секунду.

Ниже приведен код загрузки пользователей на PHP:

# Список пользователей, которых нужно импортировать
# Первый элемент - User ID из вашей системы
$users = array(
    array('id' => 123,
          'email' => 'mail1@mail.ru',
          'phone' => '891xxxxxx',
          'name' => 'Test'
    ),
    array('id' => 456,
          'email' => 'mail2@mail.ru',
          'phone' => '891xxxxxx',
          'name' => 'Test2'
    )
);
$auth_token = 'xxx'  # TODO: ПОДСТАВЬТЕ СЮДА ВАШ AUTH_TOKEN, его можно найти в разделе "Настройки > Разработчикам"


for ($i =0; $i < count($users); ++$i ) {
    $url = 'http://api.carrotquest.io/v1/users/'.$users[$i]['id'].'/props?auth_token='.$auth_token;
    $operations = json_encode(array(
            array('op' => 'update_or_create',
                  'key' => '$email',
                  'value' => $users[$i]['email']
            ),
            array('op' => 'update_or_create',
                  'key' => '$phone',
                  'value' => $users[$i]['phone']
            ),
            array('op' => 'update_or_create',
                  'key' => '$name',
                  'value' => $users[$i]['name']
            ),
        )
    );

    $result = file_get_contents($url, false, stream_context_create(array(
      'http' => array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' =>http_build_query(array('operations' => $operations,'by_user_id'  => 'true')),
      )
    )));


    print $result;
}