Общая информация

Методы

POST

Формат передаваемых данных

application/json

Формат ответа

JSON

Авторизация

Сервер-сервер API проверяет авторизацию и IP адрес клиента.

Логин и секрет передаются с помощью Basic HTTP Authorization, в заголовке Authorization

Authorization: Basic base64('login:secret')

Логин и секрет и список разрешенных IP адресов могут быть изменены в настройках проекта.

Описание методов

Пользователи могут быть идентифицированы с помощью одного из четырех полей:

  • uid - ID пользователя в проекте
  • email - его Email адрес
  • phone - его телефон, если есть
  • wp_token - токен для веб пушей

POST /api/v2/profiles/update/

Создание / обновление пользователя

Создает нового или обновляет существующего пользователя на основании переданных полей.

Все поля должны быть предварительно объявлены через Web интерфейс в настройках проекта. Все необъявленные поля будут проигнорированы.

Обновление полей профиля может привести к запуску тригерных рассылок.

Обновление происходит синхронно

Параметры
Параметр Тип Описание
uid string ID пользователя в проекте. Опционально
phone phone Телефон пользователя. Опционально
email email Email пользователя. Опционально
wp_token wp_token Web push token пользователя. Опционально
fields JSON Произвольные поля профиля специфичные для проекта
Пример запроса

В настройках проекта было объявлено поле "pole1" тип "Строка"

Body:
{
    "email": "user@mail.ru",
    "fields": {
        "pole1": "text",
        "pole2": 123        
    }
}
Пример ответа
Response code: 201
Body:
{
    "email": "user@mail.ru",
    "fields": {
        "pole1": "text",    
    }
}

POST /api/v2/profiles/update/bulk/

Создание / обновление пользователей пакетно

Создает новых или обновляет существующих пользователей на основании переданных полей.

Все поля должны быть предварительно объявлены через Web интерфейс в настройках проекта. Все необъявленные поля будут проигнорированы.

Обновление происходит асинхронно.
Есть защита от "race condition", в виде специального системного поля "update_profile_last_updated_at", в котором хранится время последнего обновления профиля

Параметры
Параметр Тип Описание
uid string ID пользователя в проекте. Опционально
phone phone Телефон пользователя. Опционально
email email Email пользователя. Опционально
wp_token wp_token Web push token пользователя. Опционально
fields JSON Произвольные поля профиля специфичные для проекта

Необходимо передавать в теле массив. Один профиль - Один хешмап. Предварительно вам нужно смерджить все обновления одного профия в один хешмап. Не нужно передавать неколько хешмап с одинаковым uid или phone, или email, или wp_token.

Пример запроса

В настройках проекта было объявлено поле "pole2" тип "Число"

Body:
[
   {
      "email":"user1@mail.ru",
      "fields":{
         "pole1":"text1",
         "pole2":123
      }
   },
   {
      "email":"user2@mail.ru",
      "fields":{
         "pole1":"text2",
         "pole2":777
      }
   }
]
Пример ответа
Response code: 202
Body:
[
   {
      "email":"user1@mail.ru",
      "fields":{
         "pole2":123
      }
   },
   {
      "email":"user2@mail.ru",
      "fields":{
         "pole2":777
      }
   }
]