Перейти к основному содержимому

Работа с сегментами (API)

Для работы с сегментами потребуются следующие артефакты.

  • project_id (ID проекта) и ss_token (сервисный токен) — значения из RuStore Консоль. Чтобы получить их, на странице приложения перейдите в раздел Push-уведомления > Проекты и скопируйте значения из полей ID проекта и Сервисные токены.
  • push_token — push-токен(ы) устройств для подписки на рассылку по топику и отписки от неё.
  • mt_api_user_id — API User ID из myTracker.
  • mt_secret_key — cекретный ключ к API из myTracker.
  • mt_segment_id — ID сегмента из myTracker.
  • mt_app_id — идентификатор приложения.
  • export_project_id (uuid) — ID проекта экспорта.
  • export_segment_id (uuid) — ID сегмента для экспорта.

Создание проекта экспорта

POST https://vkpns-segments.rustore.ru/v1/export_settings/project/create

Заголовок

Authorization: Authorization: Bearer $ss_token

Тело запроса

ПараметрТипОписание
projecttextID push проекта из консоли разработчика
secret_keytextСекретный ключ к API MyTracker
api_user_idtextID пользователя MyTracker, от которого будут выгружаться сегменты
app_idintID приложения MyTracker

Тело успешного ответа

ПараметрТипОписание
export_project_idtextID проекта экспорта

Тело ответа ошибки

ПараметрТипОписание
codeintКод ошибки
messagetextПодробная ошибка
statustextСтатус

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

curl --location 'https://vkpns-segments.rustore.ru/v1/export_settings/project/create' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <ss_token>' \
--data '{
"project": "<project_id>",
"api_user_id": "<mt_api_user_id>",
"secret_key": "<mt_secret_key>",
"app_id": <mt_app_id>
}';

Примеры ответа

Успешный ответ
HTTP/2 200

{
"id": "b04b48ab-3125-444f-94eb-aad511c074e7"
};
Невалидный s2s-токен
HTTP/2 400

{
"code": 2000,
"status": "BAD_REQUEST",
"message": "Invalid S2S token"
};

Получение настроек проекта экспорта

POST https://vkpns-segments.rustore.ru/v1/export_settings/project/get

Заголовок

Authorization: Authorization: Bearer $ss_token

Тело запроса

ПараметрТипОписание
idtextID проекта экспорта

Тело успешного ответа

ПараметрТипОписание
app_idintID приложения MyTracker
idtextID проекта экспорта
projecttextID push проекта из консоли разработчика

Тело ответа ошибки

ПараметрТипОписание
codeintКод ошибки
statustextСтатус
messagetextПодробная ошибка

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

curl --location 'https://vkpns-segments.rustore.ru/v1/export_settings/project/get' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <ss_token>' \
--data '{
"id": "<export_project_id>"
}';

Пример ответа

Успешный ответ
HTTP/2 200

{
"id": "<export_project_id>",
"app_id": <mt_app_id>,
"project": "<project_id>"
};

Создание сегмента для экспорта

POST https://vkpns-segments.rustore.ru/v1/export_settings/project/<export_project_id>/segments/create

Заголовок

Authorization: Authorization: Bearer $ss_token

Тело запроса

ПараметрТипОписание
periodintПериодичность выгрузки в часах
segmenttextID сегметра из MyTracker

Тело успешного ответа

ПараметрТипОписание
export_segment_idtextID сегмента для выгрузки

Тело ответа ошибки

ПараметрТипОписание
codeintКод ошибки
statustextСтатус
messagetextПодробная ошибка

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

curl --location 'https://vkpns-segments.rustore.ru/v1/export_settings/project/<export_project_id>/segments/create' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <ss_token>' \
--data '{
"period": 24,
"segment": "<mt_segment_id>"
}';

Пример ответа

Успешный ответ
HTTP/2 200

{
"id": "<export_segment_id>"
};

Получение данных сегментов для экспорта

POST https://vkpns-segments.rustore.ru/v1/export_settings/project/<export_project_id>/segments/get

Заголовок

Authorization: Authorization: Bearer $ss_token

Тело успешного ответа

ПараметрТипОписание
segmentsarray<Segment>Массив с сегментами

Segment

ПараметрТипОписание
idtextID сегмента для выгрузки
segmenttextID сегметра из MyTracker
periodintПериодичность выгрузки в часах
is_enabledbooleanФлаг, включён данный сегмент или нет

Тело ответа ошибки

ПараметрТипОписание
codeintКод ошибки
statustextСтатус
messagetextПодробная ошибка

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

curl --location --request POST 'https://vkpns-segments.rustore.ru/v1/export_settings/project/<export_project_id>/segments/get' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <ss_token>';

Пример ответа

Успешный ответ
HTTP/2 200

{
"segments": [
{
"id": "<export_segment_id>",
"segment": "<mt_segment_id>",
"period": 24,
"is_enabled": true
}
]
};

Отправка push-уведомления в сегмент

POST https://vkpns-segments.rustore.ru/v1/projects/<project_id>/segments/<mt_segment_id>/publish

Заголовок

Authorization: Authorization: Bearer $ss_token

Тело запроса

ПараметрТипОписание
messageobject (message)Сообщение

Тело успешного ответа

ПараметрТипОписание
messagetextСообщение об успешной отправке пуша

Тело ответа ошибки

ПараметрТипОписание
codeintКод ошибки
statustextСтатус
messagetextПодробная ошибка

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

curl --location 'https://vkpns-segments.rustore.ru/v1/projects/<project_id>/segments/<mt_segment_id>/publish' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <ss_token>' \
--data '{
"message": {
"notification":{
"body":"This is a notification message!",
"title":"Message",
"image":"https://image-hosting.org/284239234.jpeg"
}
}
}';

Пример ответа

Успешный ответ
HTTP/2 200

{
"message": "payload has been successfully published to segment <mt_segment_id>"
};