Tag Alias API
Device API は、サーバー側でデバイスの tag および alias 情報を照会、設定、更新、削除するために使用します。ご利用の際は、サーバー側で設定した tag がクライアント側によって上書きされないようご注意ください。
- tag と alias のロジックに不慣れな場合は、クライアント側またはサーバー側のいずれか一方のみを使用することを推奨します。
- 両方を同時に使用する場合は、アプリケーション側で tag と alias の同期を適切に処理してください。
tag と alias の詳細については、対応するクライアントプラットフォームの API ドキュメントを参照してください。
TAG 使用時の制約とルール
- TAG 数量制限: 1 つの appkey につき、最大 100,000 個の Tags を作成できます。
- TAG 長さ制限: 各 Tag の最大長は 40 バイトです。有効な文字は、英字(大文字・小文字を区別)、数字、アンダースコア、および中国語文字です。
- デバイス TAG バインド数制限: 各デバイスには最大 100 個の Tags をバインドできます。
- デバイス数制限: 1 つの Tag には最大 100,000 台のデバイスを追加できます。
有料プランをご利用で、有料 AppKey の使用制限の調整をご希望の場合は、Sales@engagelab.com まで営業チームへお問い合わせください。
alias 使用時の制約とルール
- デバイスと alias のマッピング関係: 1 つの alias は 1 台のデバイスにのみ対応でき、複数のデバイスに対応させることはできません。同様に、各デバイスは appkey の範囲内で 1 つの alias にのみマッピングでき、複数の aliases にマッピングすることはできません。
- alias 数量制限: 1 つの appkey につき、最大 100,000 個の aliases を作成できます。
- alias 長さ制限: 各 alias の最大長は 40 バイトです。有効な文字は、英字(大文字・小文字を区別)、数字、アンダースコア、および中国語文字です。
有料プランをご利用で、有料 AppKey の使用制限の調整をご希望の場合は、Sales@engagelab.com まで営業チームへお問い合わせください。
API 概要
Device API は、サーバー側でデバイスの tag および alias 情報を照会、設定、更新、削除するために使用します。
この API は、device、tag、alias の 3 つの API グループで構成されています。各グループの用途は次のとおりです。
- device は、tags や alias を含むデバイスの各種プロパティの照会/設定に使用されます。
- tag は、device tags の照会/設定/削除に使用されます。
- alias は、device aliases の照会/設定/削除に使用されます。
もう 1 つ重要な情報として、registration ID があります。
デバイスの registration_id は、クライアント統合後に取得されます。詳細は Web API ドキュメントを参照してください。
サーバー側では、デバイスの registration_id 値を取得するための API は提供していません。開発者はクライアント側から registration ID を取得し、開発者サーバーにアップロードして保存する必要があります。
AppKey 配下の Tag 数を照会する
Endpoint
GET /v4/tags_count
Request Example
Request Headers
GET /v4/tags_count
Authorization: Basic (base64 auth string)
Accept: application/json
Request Example
curl -X GET http://127.0.0.1/v4/tags_count?tags=tag1&tags=tag2&platform=ios -u "appKey:appSecret"
Request Parameters
tags: 指定した tag 文字列を照会します。必須です。1 回のリクエストで最大 1000 個の tags を照会できます(tags=tag1&tags=tag2&tags=tag3)。platform: 指定したプラットフォームを照会します。必須です。有効な値はandroid、ios、hmos、webです。その他の値は使用できません。
Response Example
- リクエストが成功すると、
tagsCountフィールドを含む JSON オブジェクトが返されます。これは、キーが tag 名、値がその tag 配下の件数であるキー・バリューのコレクションです。 - リクエストが失敗すると、エラー情報を含む JSON オブジェクトが返されます。
codeフィールドはエラーコード、messageフィールドはエラーメッセージを示します。
Successful Response
{
"tagsCount": {
"tag1": 0,
"tag2": 1,
"tag3": 2
}
}
Failed Response
{
"error": {
"code": 21008,
"message": "app_key is not a 24 size string or does not exist"
}
}
デバイスの Alias と Tags を照会する
- 現在のデバイスのすべてのプロパティを取得します。tags と alias を含みます。
Endpoint
GET /v4/devices/{registration_id}
Request Example
Request Headers
GET /v4/devices/{registration_id}
Authorization: Basic (base64 auth string)
Accept: application/json
Request Parameters
registration_id: 必須。デバイスのregistration_id。
Response Example
Successful Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Response Data
{
"tags": ["tag1", "tag2"],
"alias": "alias1"
}
- 統計項目が見つからない場合は
null、それ以外の場合はその統計項目の値が返されます。
デバイスの Alias と Tags を設定する
- 現在のデバイスの指定したプロパティを更新します。現在は tags と alias をサポートしています。
Endpoint
POST /v4/devices/{registration_id}
Request Example
Request Headers
POST /v4/devices/{registration_id}
Authorization: Basic (base64 auth string)
Accept: application/json
Request Data
{
"tags": {
"add": ["tag1", "tag2"],
"remove": ["tag3", "tag4"]
},
"alias": "alias1"
}
Request Parameters
registration_id: 必須。デバイスのregistration_id。tags:add、remove、または空文字列をサポートします。tagsパラメータが空文字列の場合、すべての tags がクリアされることを意味します。add/removeは、指定した tags の追加または削除に使用します。alias: デバイスの alias プロパティを更新します。alias が空文字列の場合、指定したデバイスの alias は削除されます。
Response Example
Successful Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Response Data
success
Failed Response
{
"error": {
"code": 27002,
"message": "unknown error"
}
}
Tag リストを照会する
- 現在のアプリケーション内のすべての tags のリストを取得します。
Endpoint
GET /v4/tags/
Request Example
Request Headers
GET /v4/tags/
Authorization: Basic (base64 auth string)
Accept: application/json
Request Parameters
- None
Response Example
Successful Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Response Data
{
"tags": ["tag1", "tag2"]
}
- 統計項目が見つからない場合は
null、それ以外の場合はその統計項目の値が返されます。
デバイスと Tag のバインド関係を照会する
- デバイスが特定の tag に属しているかどうかを照会します。
Endpoint
GET /v4/tags/{tag_value}/registration_ids/{registration_id}
Request Example
Request Headers
GET /v4/tags/{tag_value}/registration_ids/090c1f59f89
Authorization: Basic (base64 auth string)
Accept: application/json
Request Parameters
tag_value: 必須。照会する tag。registration_id: 必須。デバイスのregistration_id。
Response Example
Successful Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Response Data
{"result": true}
Tag を更新する
- tag に紐づくデバイスを追加または削除します。
Endpoint
POST /v4/tags/{tag_value}
Request Example
Request Headers
POST /v4/tags/{tag_value}
Authorization: Basic (base64 auth string)
Accept: application/json
Request Data
{
"registration_ids": {
"add": ["registration_id1", "registration_id2"],
"remove": ["registration_id1", "registration_id2"]
}
}
Request Parameters
tag_value: 必須。照会する tag。action: 操作種別。"add"と"remove"の 2 つがあり、このリクエストが追加か削除かを示します。registration_ids: 追加または削除する対象のデバイスregistration_id値。add/remove: それぞれ最大 1000 件までサポートします。
Response Example
Successful Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Response Data
success
Failed Response
{
"error": {
"code": 27005,
"message": "registration id is illegal",
"data": "{\"invalid_regids\":[\"18071adc021ff8df80\",\"100d85592955c1f1058\"]}"
}
}
Tag を削除する
tag とデバイス間の関連付けを削除します。
Endpoint
DELETE /v4/tags/{tag_value}
Request Example
Request Headers
DELETE /v4/tags/{tag_value}?platform=web
Authorization: Basic (base64 auth string)
Accept: application/json
Request Parameters
tag_value: 必須。照会する tag。platform: 任意。省略した場合のデフォルトは全プラットフォームです。
Response Example
Successful Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Response Data
success
Failed Response
{
"error": {
"code": 27002,
"message": "unknown error"
}
}
Alias を照会する(デバイスとのバインド関係)
GET /v4/aliases/{alias_value}
Get the device under the specified alias.
Alias を照会する
- 指定した alias 配下のデバイスを取得します。
Endpoint
GET /v4/aliases/{alias_value}
Request Example
Request Headers
GET /v4/aliases/{alias_value}?platform=web
Authorization: Basic (base64 auth string)
Accept: application/json
Request Parameters
alias_value: 必須。照会する alias。platform: 任意。省略した場合のデフォルトは全プラットフォームです。
Response Example
Successful Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Response Data
{
"registration_ids": ["registration_id1", "registration_id2"]
}
- 統計項目が見つからない場合は
null、それ以外の場合はその統計項目の値が返されます。
Alias を削除する
alias とデバイス間のバインド関係を削除します。
DELETE /v4/aliases/{alias_value}
Request Example
Request Headers
DELETE /v4/aliases/{alias_value}?platform=web
Authorization: Basic (base64 auth string)
Accept: application/json
Request Parameters
alias_value: 必須。削除する alias。platform: 任意。省略した場合のデフォルトは全プラットフォームです。
Response Example
- Success
success
- Failure
{
"error": {
"code": 27002,
"message": "unknown error"
}
}
ユーザーのオンライン状態を取得する
Endpoint
POST /v4/devices/status/
Request Example
Request Headers
POST /v4/devices/status/
Authorization: Basic (base64 auth string)
Accept: application/json
Request Data
{
"registration_ids": [
"010b81b3582",
"0207870f1b8",
"0207870f9b8"
]
}
Request Parameters
registration_ids: オンライン状態を取得する対象ユーザーのregistration_id値。1 回の照会で最大 1000 件のregistration_id値をサポートします。- この API は、このサービスを申請して有効化した AppKeys に対してのみ呼び出すことができます。
Response Example
Successful Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Response Data
[
{
"regid": "010b81b3582",
"online": true
},
{
"regid": "0207870f1b8",
"online": false,
"last_online_time": "2014-12-16 10:57:07"
},
{
"regid": "0207870f9b8",
"online": false
}
]
Response Data
onlinetrue: 直近 10 分以内にオンラインfalse: 直近 10 分以内にオンラインではない
last_online_timeonlineがtrueの場合、このフィールドは返されませんonlineがfalseでこのフィールドも返されない場合、最終オンライン時刻が 2 日以上前であることを意味します
- 無効な
regid値、または appkey に属していないregid値については、バリデーションに失敗します。
TAG / alias クォータ情報照会 API
指定した AppKey、platform、および tag に関連するクォータ情報を照会します。一度に照会できる tags は 1000 個以下です。
Endpoint
GET /v4/tags/quota-info?tags=tag1&platform=android
Authorization: Basic (base64 auth string)
Accept: application/json
Request Example
curl --location 'https://webpushapi-sgp.engagelab.com/v4/tags/quota-info?platform=android&tags=tag1&tags=tag2' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YjA2MTBmZGE0M2JmNmFkMTczNGNjMWY2OmQyNGMzZDk1Yzk1M2M3YmFkNzRkM2Q5YQ=='
Successful Response
{
"data": {
"totalTagQuota": 100000,
"useTagQuota": 1,
"totalAliasQuota": 100000,
"useAliasQuota": 3,
"tagUidQuotaDetail": [
{
"tagName": "tag1",
"totalUidQuota": 100000,
"useUidQuota": 0
},
{
"tagName": "tag2",
"totalUidQuota": 100000,
"useUidQuota": 0
}
]
}
}
Response Field Descriptions:
totalTagQuota: アプリケーション配下の tag 総数のクォータを示します。useTagQuota: 使用済みの tag クォータを示します。totalAliasQuota: アプリケーション配下の alias 総数のクォータを示します。useAliasQuota: 使用済みの alias クォータを示します。tagUidQuota: 単一 tag 配下のデバイス数のクォータを示します。useUidQuota: 各 tag にバインドされているデバイス数の詳細を示します。
Failed Response
{
"error": {
"code": 27002,
"message": "Invalid parameters"
}
}
HTTP ステータスコード
参考ドキュメント: Http-Status-Code
ビジネスレスポンスコード
| Code | Description | Detailed Explanation | HTTP Status Code |
|---|---|---|---|
| 21004 | 認証エラー | invalid appkey | 401 |
| 27000 | システムメモリエラー | please try again | 500 |
| 27001 | パラメータエラー | validation information is empty | 401 |
| 27002 | パラメータエラー | invalid parameter | 400 |
| 27004 | パラメータエラー | validation failed | 401 |
| 27005 | パラメータエラー | invalid regisID format | 400 |
| 21008 | パラメータエラー | app_key is not a 24-character string or does not exist | 400 |
| 27010 | パラメータエラー | alias is already bound to another regid | 400 |
| 27011 | システム制限 | デバイスにバインドされている tag 数が上限を超えています。1 台のデバイスには最大 100 個の Tags をバインドできます | 401 |
| 27012 | パラメータエラー | デバイスにバインドする Tag が存在しません | 401 |
| 27013 | パラメータエラー | アプリケーション配下の tag 数が上限を超えています。1 つのアプリケーションでは最大 100,000 個の Tags を作成できます | 401 |
| 27014 | システム制限 | tag 配下の uid 数が上限を超えています。1 つの Tag には最大 100,000 台のデバイスをバインドできます | 401 |
| 27015 | パラメータエラー | デバイスにバインドされた Alias が存在しません | 401 |
| 27016 | システム制限 | アプリケーション配下の alias 数が上限を超えています。1 つのアプリケーションでは最大 100,000 個の Aliases を作成できます | 401 |
| 27017 | パラメータエラー | tag の長さが 40 文字を超えています | 401 |
