Получение событий приложения

События приложения содержат информацию о следующих действиях, связанных с приложением:

В этом руководстве вы узнаете, как присвоить ключу доступа издателя необходимый скоуп, настроить версию приложения для получения всех связанных с ним событий, а также найдёте примеры запросов для получения событий.

Присвоение ключу доступа издателя скоупа для чтения событий

Чтобы присвоить ключу доступа издателя скоуп для чтения событий приложения:

  1. Получите токен доступа OAuth.

    Запрос:

    curl -X POST \
    https://dev.evotor.ru/oauth/token \
    -header 'content-type: application/x-www-form-urlencoded' \
    -d 'type=LOGIN' \
    -d 'grant_type=password' \
    -d 'client_id=Evo-UI' \
    -d 'username=<Логин от Личного кабинета на Портале разработчиков>' \
    -d 'password=<Пароль от Личного кабинета на Портале разработчиков>'
    

    Ответ:

    {
     "access_token": "<токен доступа OAuth>",
     "token_type": "bearer",
     "refresh_token": "string",
     "expires_in": "integer",
     "scope": "string",
     "X-Fingerprint": "string",
     "x_user_id": "string",
     "iat": "integer",
     "x_longlived": "boolean",
     "jti": "string"
    }
    
  2. С помощью токена доступа OAuth, убедитесь, что у вас есть ключ доступа издателя.

    Запрос:

    curl -X GET \
    https://dev.evotor.ru/api/v1/publisher/app/oauth/public/personal-tokens \
    -H 'accept: application/json, text/plain, */*' \
    -H 'content-type: application/json' \
    -H 'x-authorization: Bearer <токен доступа OAuth>'
    

    Ответ:

    {
     "items": [
         {
             "scope": [
                 "push-notification:write"
             ],
             "id": "<идентификатор ключа доступа издателя>"
         }
     ],
     "paging": {}
    }
    

    Ответ содержит идентификатор вашего ключа доступа издателя (поле id) и список его скоупов (массив scope).

  3. Присвойте ключу доступа издателя скоуп для чтения событий приложения.

    Запрос:

    curl -X PUT \
    https://dev.evotor.ru/api/v1/publisher/app/oauth/public/personal-tokens/{TOKEN_ID} \
    -H 'accept: application/json, text/plain, */*' \
    -H 'content-type: application/json' \
    -H 'x-authorization: Bearer <access_token>' \
    -d '{
        "scope": [
        	"push-notification:write",
         "event:read"
        ]
    }'
    

    Ответ:

    {
     "scope": [
         "push-notification:write",
         "event:read"
     ],
     "id": "<идентификатор ключа доступа издателя>",
     "access_token": "<Новый ключ доступа издателя>"
    }
    

Сохраните новый ключ доступа издателя. С помощью этого ключа Облако Эвотор авторизует запросы на получение событий приложения.

Настройка версии приложения для получения всех типов событий

Типы событий приложения, которые вы сможете получать, необходимо настраивать для каждой версии вашего приложения.

Чтобы задать настройки получения событий приложения всех типов выполните следующий запрос:

   curl --request POST \
   --url https://dev.evotor.ru/api/v1/publisher/app/hooks/public/api/apps/{APP_ID}/versions/{VERSION_ID}/event-settings \
   --header 'accept: application/json, text/plain, */*' \
   --header 'content-type: application/json' \
   --header 'x-authorization: Bearer <токен доступа OAuth>' \
   --d '{
       "active": true,
       "events": [
           "product",
           "product-group",
           "document",
           "marketplace.purchase"
       ]
   }'

Параметры запроса:

После создания настроек получения событий приложения, переведите соответствующую версию приложения в тестирование и установите его в Личном кабинете пользователя Эвотор.

Изменить созданные настройки событий

Перед изменением настройки узнайте её id. Для этого выполните запрос:

curl --request GET \
--url https://dev.evotor.ru/api/v1/publisher/app/hooks/public/api/apps/{app_id}/versions/{version_id}/event-settings \
--header 'accept: application/json, text/plain, */*' \
--header 'content-type: application/json' \
--header 'x-authorization: Bearer {publisher_token}'

APP_ID и VERSION_ID это идентификаторы версии приложения. Они отображены в адресной строке браузера на Портале разработчиков: https://dev.evotor.ru/#/store/apps/update_version/{APP_ID}/{VERSION_ID}.

В ответ вы получите JSON со списком имеющихся настроек и их id. Общая схема ответа:

{
"items": [
{
"events": [
"marketplace.purchase",
"product"
],
"active": true,
"id": "string",
"app_id": "string",
"version_id": "string",
"publisher_id": "string",
"updated_at": "datetimeoffset",
"created_at": "datetimeoffset"
}
],
"paging": {}
}

Используйте полученный id в запросе на обновление настройки. В этом примере вместо events_settings_id подставьте id нужной настройки событий:

curl -i -X PUT \
--url "https://dev-test.evotor.ru/api/v1/publisher/app/hooks/public/api/apps/{app_id}/versions/{version_id}/event-settings/{events_settings_id}" \
--header "Cache-Control:no-cache" \
--header "X-Authorization:Bearer {publisher_token}" \
--header "Accept:application/vnd.evotor.v2+json" \
--header "Content-Type:application/vnd.evotor.v2+json; charset=UTF-8" \
--data '{
"active": true,
"events": [
"marketplace.purchase",
"product"
  ]
}' \

Получение событий приложения за период

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

curl
--location
--request
GET 'https://api.evotor.ru/api/apps/{application_id}/events?type=MarketplacePurchase'

Облако авторизует запрос по Bearer схеме с помощью ключа доступа издателя.

Ответ будет содержать массив событий приложения, каждое из которых содержит поля с общим описанием события и объект payload. Подробное описание ответа вы найдёте в справочнике.

Получение выбранного события приложения

Каждое событие приложения имеет свой уникальный идентификатор.

Используйте этот идентификатор, чтобы получить конкретное с помощью запроса:

curl
--location
--request
GET 'https://api.evotor.ru/api/apps/{application_id}/events/{event_id}'

Облако авторизует запрос по Bearer схеме с помощью ключа доступа издателя.

Ответ будет содержать указанное в запросе событие, которое содержит поля с общим описанием события и объект payload. Подробное описание ответа вы найдёте в справочнике.