取得と使用 api key
EasyAR 開発センターで API Key を作成する際、数に制限はありません。異なるアプリケーションに独立した API Key を割り当てることをお勧めします。これにより、権限をより細かく制御できます。
API key の作成
EasyAR 開発センターにログインします。API Key を初めて使用する場合は、まず API Key を作成してください。手順は以下の通りです:
- 「承認」の下にある「クラウドサービス API KEY」をクリック
- 「API KEY」ページで「API KEY を作成」ボタンをクリック

- 「アプリ名」を入力
- アプリの要件に基づいて必要なクラウドサービスにチェックを入れます。すべてを承認することはお勧めしません。
- 「OK」をクリック
ヒント
SpatialMap を使用する場合、SpatialMap にチェックを入れます。
クラウド認識を使用する場合、「クラウド認識」にチェックを入れます。
Mega Landmark を使用する場合、「Mega Landmark」にチェックを入れます。この機能を使用する前には、ビジネスチームに申請する必要があります。
AR オペレーションセンターを使用する場合、「AR オペレーションセンター」にチェックを入れます。この機能を使用する前には、ビジネスチームに申請する必要があります。
Mega Block クラウド位置特定を使用する場合、「Mega Block」にチェックを入れます。

- この時点で、API Key と API Secret がページに生成されます。以下に示すように、漏洩しないように注意してください。

警告
クライアント側(Web、WeChat ミニアプリなど)のアプリケーションで API Key と API Secret を直接使用しないでください。
Token の取得
Token を取得する方法は2つあります:1. 開発センターから直接取得する。2. コードを書いて取得する。リソースへのアクセス権限を制御する必要がある場合は、2番目の方法を使用することをお勧めします。以下では、これらの取得方法をそれぞれ説明します。ニーズに応じて選択してください。
開発センターから token を取得
- 使用する API Key を選択し、右側の「管理」をクリック

- Token の有効期限を選択
- 「Token を生成」をクリック
- 「コピー」をクリック

注記
セキュリティは Token の有効期限設定の主な理由です。 Token の有効期限が長すぎると、漏洩または盗難に遭った場合、攻撃者が長期間使用し、データ漏洩や未承認の操作を引き起こす可能性があります。有効期限は Token の有効な時間枠を制限し、たとえ漏洩しても被害は短時間に限定されます。
API key と API secret を使用して token を生成
Token の生成プロセスでは、コアパラメータの署名操作が要求され、伝送の安全性が確保されます。その後、署名されたデータは STS(Security Token Service)サービスに送信され、認証が行われます。STS サービスによる認証が成功すると、一時的なアクセス Token が発行されます。この Token は指定された時間枠内でのみ有効で、期限切れ後は再認証プロセスを開始する必要があります。
警告
クライアント側コードで Token を生成せず、サーバー側で生成した Token をクライアントに渡して使用してください。
リクエストパラメータ
| フィールド名 | タイプ | 必須 | 説明 |
|---|---|---|---|
| apiKey | string | はい | API Key |
| expires | int | はい | 生成された Token の有効時間, 単位は秒 |
| acl | string | はい | アクセス制御リスト (Access Control List), token がアクセスできるリソースの権限を制御 |
| timestamp | long | はい | タイムスタンプ, 単位はミリ秒 |
| signature | string | はい | 署名 |
acl: 1つ以上の AC(アクセス制御)で構成され、各 AC は service、effect、resource、permission の4つの部分を含む。
- service:サービスタイプ。現在サポート: ecs:crs(クラウド認識)、ecs:spatialmap(疎空間マップ)、ecs:cls(Mega Block クラウド位置特定)、ecs:vps1(landmark)
- resource: 具体的なサービスの app id。例: クラウド認識ライブラリの CRS AppId
- effect: この resource 設定項目に一致するアクセスが実行可能かどうかを指定。Allow または Deny
- permission: 権限。READ または WRITE
構造例:
[
{
"service": "ecs:crs",
"resource": ["f7ff497727ab2d55ea01d9984ef8068c"],
"effect": "Allow",
"permission": ["READ"]
}
]
署名方法
- リクエストのすべてのパラメータをキー名でソート
- 各パラメータについて、キー名と値を連結して文字列を作成
- 得られたすべての文字列を連結し、最後に API Secret を追加
- 文字列の sha256 ハッシュを16進数で計算したものが署名
署名サンプル
<?php
// あなたの API Key と API Secret
$apiKey = '6a47f7f8ff6......68744b4bcf';
$apiSecret = '87745d866345256b......fbae27c502a';
// あなたのサービス 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 の取得
上記で生成した署名をパラメータリストに追加し、/token/v2 エンドポイントにリクエストを送信して Token を取得します。
- リクエスト先:
https://uac.easyar.com/token/v2またはhttps://uac-na1.easyar.com/token/v2(North-america-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
}
Token の使用
業務 https リクエストで、Token をリクエストヘッダーに追加します。形式:{"Authorization": "nuPDCj......xstQX"}。
業務 API リクエストを送信する際は、appId パラメータを追加する必要があります(出所については開発センターで関連サービスを参照)。
エラーコード説明
Token 生成および Token 使用プロセスでは、様々なエラーや異常が発生する可能性があります。 開発者が問題を迅速に特定し、効果的な解決策を講じるのに役立つよう、一般的なエラーコードとその意味を以下に詳しく説明します:
| エラーコード | エラーメッセージ | エラー説明 | 解決策 |
|---|---|---|---|
| 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 形式ではない | 取得した Token は、一切処理せずそのまま使用 |
| 4001019 | Decryption error | リクエストヘッダーに設定された Authorization が EasyAR 生成のものではない | 取得した Token は、一切処理せずそのまま使用 |
| 4001022 | API Key's resource is empty | API Key に関連付けられたクラウドサービスがない | API Key がクラウドサービスに関連付けられているか、関連付けられたクラウドサービスの有効期限が切れていないか確認 |
| 4001024 | Token is expired | Token の有効期限が切れている | 再生成 |
| 4001025 | Token generate fail | Token 生成失敗 | テクニカルサポートに連絡: support@easyar.com |