Table of Contents

Получение и использование API Key

В центре разработки EasyAR создание API Key не ограничено по количеству. Рекомендуется назначать отдельные API Key для разных приложений для более детального управления правами доступа.

Создать api key

Войдите в центр разработки EasyAR view/login.html. Если вы используете API Key впервые, сначала создайте его, выполнив следующие шаги:

  • В разделе «Авторизация» нажмите «API KEY облачных сервисов»
  • На странице «API KEY» нажмите кнопку «Создать API KEY»

APIKey

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

Для использования SpatialMap отметьте SpatialMap.

Для использования распознавания в облаке отметьте распознавание в облаке.

Для использования Mega Landmark отметьте Mega Landmark. Перед использованием этой функции необходимо обратиться в коммерческий отдел.

Для использования центра управления AR отметьте центр управления AR. Перед использованием этой функции необходимо обратиться в коммерческий отдел.

Для использования облачного позиционирования Mega Block отметьте Mega Block.

APIKey

  • На странице будет сгенерированы API Key и API Secret, как показано ниже. Не разглашайте их.

APIKey

Предупреждение

Не используйте API Key и API Secret напрямую в клиентских приложениях (например, Web, мини-программы WeChat и т.д.).

Получить токен

Есть два способа получить токен: 1. Непосредственно из центра разработки; 2. Написав код. Если вам требуется контроль прав доступа к ресурсам, рекомендуется использовать второй способ. Ниже описаны оба способа, вы можете выбрать подходящий в зависимости от ваших потребностей.

Получить токен из центра разработки

  • Выберите API Key, который вы хотите использовать, и нажмите «Управление» справа.

APIKeyToken

  • Выберите срок действия токена
  • Нажмите «Сгенерировать токен»
  • Нажмите «Копировать»

APIKeyToken

Примечание

‌Безопасность является основной причиной установки срока действия токена.‌ Если срок действия токена слишком длинный, в случае его утечки или кражи злоумышленник сможет использовать его длительное время, что приведет к утечке данных или несанкционированным операциям; срок действия ограничивает окно валидности токена, поэтому даже в случае утечки вред будет ограничен коротким периодом времени.

Сгенерировать токен с помощью API Key и API Secret

Процесс генерации токена требует подписи ключевых параметров для обеспечения безопасности передачи. Затем эти подписанные данные отправляются в службу STS (Security Token Service) для аутентификации. После успешной проверки службой STS выдается временный токен доступа, который действителен только в течение указанного временного окна. По истечении срока действия необходимо повторно инициировать процесс аутентификации.

Предупреждение

Не генерируйте токен в клиентском коде. Генерируйте токен на сервере и передавайте его клиенту для использования.

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

Имя поля Тип Обязательно Описание
apiKey string Да API Key
expires int Да Срок действия токена, в секундах
acl string Да Список контроля доступа (Access Control List), определяет права доступа токена к ресурсам
timestamp long Да Отметка времени, в миллисекундах
signature string Да Подпись

acl: Состоит из одного или нескольких элементов AC (контроль доступа). Каждый AC содержит четыре части: service, effect, resource, permission.

  1. service: Тип сервиса. Поддерживаемые значения: ecs:crs (облачное распознавание), ecs:spatialmap (разреженная пространственная карта), ecs:cls (Mega Block облачная локализация), ecs:vps1 (landmark-vps).
  2. resource: App id конкретного сервиса, например CRS AppId библиотеки облачного распознавания.
  3. effect: Определяет, разрешено ли выполнение доступа, соответствующего данной конфигурации resource. Значения: Allow, Deny.
  4. permission: Права доступа. Значения: READ, WRITE.

Пример структуры:

[
  {
    "service": "ecs:crs",
    "resource": ["f7ff497727ab2d55ea01d9984ef8068c"],
    "effect": "Allow",
    "permission": ["READ"]
  }
]

Метод подписи

  1. Отсортируйте все параметры запроса по имени ключа
  2. Для каждого параметра объедините имя ключа и значение в строку
  3. Объедините все полученные строки и добавьте в конец API Secret
  4. Вычислите шестнадцатеричное значение хеша sha256 строки — это и будет подпись
Пример подписи
<?php
// Ваш API Key и API Secret
$apiKey = '6a47f7f8ff6......68744b4bcf';
$apiSecret = '87745d866345256b......fbae27c502a';
// ID вашего сервисного приложения (App ID)
$appId = 'f7ff497727ab2d55ea01d9984ef8068c';
// Срок действия в секундах
$expires = 3600;

// Формирование параметров для подписи
$data = [
    'apiKey' => $apiKey,
    'expires' => $expires,
    'acl' => '[{"service":"ecs:crs","resource":["'. $appId .'"],"effect":"Allow","permission":["READ"]}]',
    'timestamp' => time() * 1000,
];

// Сортировка
ksort($data);

// Конкатенация строк
$builder = [];
foreach ($data as $key => $value) {
    array_push($builder, $key . $value);
}

// Добавление API Secret
array_push($builder, $apiSecret);

// Генерация подписи
$signature = hash('sha256', implode('', $builder));
echo $signature;
Совет

При добавлении подписи преобразуйте ACL в строку JSON.

Получить токен

Добавьте сгенерированную подпись в список параметров и отправьте запрос на конечную точку /token/v2, чтобы получить токен.

  • Адрес запроса: https://uac.easyar.com/token/v2 или https://uac-na1.easyar.com/token/v2 (регион Северная Америка 1)
  • Метод запроса: POST
  • Заголовки запроса: Content-Type: application/json
  • Параметры запроса: {"apiKey":"6a47f7f8ff6......68744b4bcf","expires":3600,"acl":"[{\"service\":\"ecs:crs\",\"resource\":[\"f7ff497727ab2d55ea01d9984ef8068c\"],\"effect\":\"Allow\",\"permission\":[\"READ\"]}]","timestamp":1765954279002,"signature":"32f18a37fc3c18......55c4943af9"}

Пример:

curl -X POST https://uac.easyar.com/token/v2 \
-H 'Content-Type: application/json' \
-d '{"apiKey":"6a47f7f8ff6......68744b4bcf","expires":3600,"acl":"[{\"service\":\"ecs:crs\",\"resource\":[\"f7ff497727ab2d55ea01d9984ef8068c\"],\"effect\":\"Allow\",\"permission\":[\"READ\"]}]","timestamp":1765954279002,"signature":"32f18a37fc3c18......55c4943af9"}'

Если в возвращаемом результате statusCode равен 0, это означает успех.

Формат успешного ответа:

{
  "statusCode": 0,
  "timestamp": 1765954874399,
  "msg": "Success",
  "result": {
    "apiKey": "6a47f7f8ff6......68744b4bcf",
    "expires": 3600,
    "token": "nuPDCj......xstQX",
    "expiration": "2025-12-17T08:01:14.399+0000"
  }
}
  • token: Токен для аутентификации бизнес-запросов.
  • expiration: Время истечения срока действия токена. По истечении срока действия необходимо запросить новый токен.

Формат ответа с ошибкой:

{
  "statusCode": 4001017,
  "timestamp": 1765954666624,
  "msg": "AppId is not authorized by this API Key",
  "result": null
}

Использовать токен

В HTTPS-запросах вашего приложения добавьте токен в заголовок запроса в формате: {"Authorization": "nuPDCj......xstQX"}.

При отправке запросов к API сервиса добавьте параметр appId (источник получения см. в центре разработки в разделе соответствующего сервиса).

Описание кодов ошибок

В процессе генерации и использования токена могут возникать различные ошибки или исключительные ситуации. Чтобы помочь разработчикам быстро определить проблему и принять эффективные меры, ниже подробно описаны распространенные коды ошибок и их значения:

Код ошибки Сообщение об ошибке Описание ошибки Решение
4001011 API Key invalid API Key недействителен Проверьте наличие этого API Key в разделе «API KEY облачных сервисов»
4001012 Timestamp invalid Неверная временная метка Временная метка указывается в миллисекундах, и ее расхождение со стандартным временем не должно превышать 5 минут
4001015 Signature invalid Неверная подпись Проверьте правильность алгоритма подписи, а также соответствие API Secret данному API KEY
4001017 AppId is not authorized by this API Key Этот API Key не авторизован для данного AppId Проверьте, связана ли служба, к которой принадлежит AppId, с этим API Key
4001018 Base64 decode error Установленный в заголовке запроса Authorization не является допустимой строкой base64 Полученный токен используйте как есть, без обработки
4001019 Decryption error Установленный в заголовке запроса Authorization не был сгенерирован EasyAR Полученный токен используйте как есть, без обработки
4001022 API Key's resource is empty API Key не имеет связанных облачных сервисов Проверьте, связан ли API Key с облачными сервисами, и не истек ли срок действия связанных сервисов
4001024 Token is expired Срок действия токена истек Сгенерируйте новый токен
4001025 Token generate fail Ошибка генерации токена Свяжитесь со службой поддержки: support@easyar.com