Table of Contents

Obtener y usar API Key

En EasyAR Developer Center no hay límite para crear API Key. Se recomienda asignar una API Key independiente a cada aplicación para controlar los permisos con más precisión.

Crear API Key

Inicie sesión en EasyAR Developer Center. Si es la primera vez que usa API Key, cree primero una API Key con estos pasos:

  • En "Authorization", haga clic en "Cloud Service API KEY"
  • En la página "API KEY", haga clic en el botón "Create API KEY"

APIKey

  • Rellene "Application Name"
  • Seleccione los cloud services necesarios según los requisitos de su aplicación. No se recomienda autorizar todos.
  • Haga clic en "OK"
Consejo

Si usa SpatialMap, seleccione SpatialMap.

Si usa Cloud Recognition, seleccione Cloud Recognition.

Si usa Mega Landmark, seleccione Mega Landmark; esta función requiere solicitarla a ventas antes de usarla.

Si usa AR Operation Center, seleccione AR Operation Center; esta función requiere solicitarla a ventas antes de usarla.

Si usa Mega Block cloud localization, seleccione Mega Block.

APIKey

  • En este momento se generarán API Key y API Secret en la página, como se muestra abajo. No los filtre.

APIKey

Advertencia

No use API Key ni API Secret directamente en aplicaciones client, como Web o WeChat Mini Program.

Obtener Token

Hay dos formas de obtener Token: 1. obtenerlo directamente desde Developer Center; 2. obtenerlo escribiendo código. Si necesita controlar permisos de acceso a recursos, se recomienda la segunda forma. A continuación se describen ambas; elija según sus necesidades.

Obtener Token desde Developer Center

  • Seleccione la API Key que desea usar y haga clic en "Manage" a la derecha

APIKeyToken

  • Seleccione un periodo de validez para el Token
  • Haga clic en "Generate Token"
  • Haga clic en "Copy"

APIKeyToken

Nota

La seguridad es la razón principal para configurar la validez del Token. Si el Token tiene una validez demasiado larga, una vez filtrado o robado, un atacante puede usarlo durante mucho tiempo, causando filtración de datos u operaciones no autorizadas. La validez limita la ventana efectiva del Token; incluso si se filtra, el daño queda limitado a poco tiempo.

Generar Token con API Key y API Secret

El proceso de generación de Token requiere firmar los parámetros principales para garantizar la seguridad de la transmisión. Después, los datos firmados se envían al servicio STS (Security Token Service) para autenticación. Tras la verificación de STS, se emite un Token de acceso temporal que solo es válido dentro de la ventana de tiempo especificada; al expirar, se debe iniciar de nuevo el proceso de autenticación.

Advertencia

No genere Token en el código client; genere Token en el server side y páselo al client para su uso.

Parámetros de request

Nombre del campo Tipo Obligatorio Descripción
apiKey string API Key
expires int Tiempo de validez del Token generado, en segundos
acl string Access Control List, controla los permisos de resource a los que puede acceder el token
timestamp long Timestamp, en milisegundos
signature string Signature

acl: se compone de uno o varios AC (access control). Cada AC contiene cuatro partes: service, effect, resource y permission.

  1. service: tipo de servicio; actualmente admite ecs:crs (Cloud Recognition), ecs:spatialmap (Sparse Spatial Map), ecs:cls (Mega Block Cloud Localization), ecs:vps1 (landmark)
  2. resource: app id del servicio específico, por ejemplo CRS AppId de la Cloud Recognition library
  3. effect: especifica si el acceso que coincide con esta configuración de resource puede ejecutarse; valores Allow, Deny
  4. permission: valores de permiso READ, WRITE

Ejemplo de estructura:

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

Método de signature

  1. Ordene todos los parámetros de request por nombre de key
  2. Para cada parámetro, concatene el nombre de key y el value en una string
  3. Concatene todas las strings resultantes y añada API Secret al final
  4. Calcule el hash sha256 de la string; el valor hexadecimal es la signature
Ejemplo de signature
<?php
// su API Key y API Secret
$apiKey = '6a47f7f8ff6......68744b4bcf';
$apiSecret = '87745d866345256b......fbae27c502a';
// el App ID de su servicio
$appId = 'f7ff497727ab2d55ea01d9984ef8068c';
// tiempo de validez, en segundos
$expires = 3600;

// construye los parametros que se firmaran
$data = [
    'apiKey' => $apiKey,
    'expires' => $expires,
    'acl' => '[{"service":"ecs:crs","resource":["'. $appId .'"],"effect":"Allow","permission":["READ"]}]',
    'timestamp' => time() * 1000,
];

// ordena
ksort($data);

// concatena la cadena
$builder = [];
foreach ($data as $key => $value) {
    array_push($builder, $key . $value);
}

// concatena el API Secret
array_push($builder, $apiSecret);

// genera la firma
$signature = hash('sha256', implode('', $builder));
echo $signature;
Consejo

Al añadir la signature, ACL debe convertirse en string JSON.

Obtener Token

Agregue la signature generada a la lista de parámetros y envíe un request a la interfaz /token/v2 para obtener Token.

  • Dirección de request: https://uac.easyar.com/token/v2 o https://uac-na1.easyar.com/token/v2 (North America 1)
  • Método de request: POST
  • Header de request: Content-Type: application/json
  • Parámetros de request:{"apiKey":"6a47f7f8ff6......68744b4bcf","expires":3600,"acl":"[{\"service\":\"ecs:crs\",\"resource\":[\"f7ff497727ab2d55ea01d9984ef8068c\"],\"effect\":\"Allow\",\"permission\":[\"READ\"]}]","timestamp":1765954279002,"signature":"32f18a37fc3c18......55c4943af9"}

Ejemplo:

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"}'

Si statusCode en el resultado devuelto es 0, indica éxito.

Formato de retorno normal:

{
  "statusCode": 0,
  "timestamp": 1765954874399,
  "msg": "Success",
  "result": {
    "apiKey": "6a47f7f8ff6......68744b4bcf",
    "expires": 3600,
    "token": "nuPDCj......xstQX",
    "expiration": "2025-12-17T08:01:14.399+0000"
  }
}
  • token: Token para autenticación de business request.
  • expiration: hora de expiración del token; después de expirar, debe solicitarse de nuevo.

Formato de retorno de error:

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

Usar Token

En los request https de negocio, añada Token al request header con el formato: {"Authorization": "nuPDCj......xstQX"}.

Al enviar request de API de negocio, debe añadir el parámetro appId (consulte el servicio correspondiente en Developer Center para obtenerlo).

Descripción de error codes

Durante la generación y el uso de Token pueden producirse distintos errores o excepciones. Para ayudar a los desarrolladores a localizar problemas rápidamente y tomar medidas efectivas, a continuación se detallan los error codes comunes y su significado:

Error code Error message Descripción del error Solución
4001011 API Key invalid API Key no válida Compruebe si esta API Key existe en "Cloud Service API KEY"
4001012 Timestamp invalid Timestamp no válido La unidad del timestamp es milisegundos y la diferencia con la hora estándar no debe superar 5 minutos
4001015 Signature invalid Signature no válida Compruebe si el algoritmo de signature es correcto y si API Secret coincide con API KEY
4001017 AppId is not authorized by this API Key API Key no ha autorizado este AppId Compruebe si el servicio al que pertenece AppId está asociado a esta API Key
4001018 Base64 decode error Authorization configurado en el request header no es base64 válido Use directamente el Token obtenido sin procesarlo
4001019 Decryption error Authorization configurado en el request header no fue generado por EasyAR Use directamente el Token obtenido sin procesarlo
4001022 API Key's resource is empty API Key no tiene cloud service asociado Compruebe si API Key está asociada a cloud service y si el cloud service asociado ha expirado
4001024 Token is expired Token ha expirado Genérelo de nuevo
4001025 Token generate fail La generación de Token falló Contacte con soporte técnico: support@easyar.com