Tag Alias API
Device APIは、サーバー側でデバイスのタグ(tag)とエイリアス(alias)情報のクエリ、設定、更新、削除に使用されます。使用時には、サーバー側で設定したタグがクライアント側によって上書きされないよう注意が必要です。
- タグやエイリアスのロジックに慣れていない場合は、クライアントまたはサーバーのいずれか一方のみを使用することを推奨します。
- 両側で同時に使用する場合は、タグとエイリアスの同期を処理できるようアプリケーションを設計してください。
TAG使用のルールと制限
- TAG数量制限:単一appkey配下では、最大100,000個のTagを作成できます。
- TAG長さ制限:各Tagの最大長は40バイトです。有効な文字には、英字(大文字小文字区別)、数字、アンダースコア、漢字が含まれます。
- デバイスのTAGバインド制限:各デバイスは最大100個のTagをバインドできます。
- デバイス数量制限:単一Tag配下では、最大100,000台のデバイスを追加できます。
有料プランのサブスクライバーで、有料AppKeyの使用制限を調整したい場合は、営業チームまでお問い合わせください:Sales@engagelab.com
alias使用のルールと制限
- デバイスとaliasのマッピング:1つのaliasは1台のデバイスにのみ対応でき、複数のデバイスに対応することはできません。同様に、appkey範囲内の各デバイスは1つのaliasにのみマッピングでき、複数のaliasにマッピングすることはできません。
- alias数量制限:単一appkey配下では、最大100,000個のaliasを作成できます。
- alias長さ制限:各aliasの最大長は40バイトです。有効な文字には、英字(大文字小文字区別)、数字、アンダースコア、漢字が含まれます。
有料プランのサブスクライバーで、有料AppKeyの使用制限を調整したい場合は、営業チームまでお問い合わせください:Sales@engagelab.com
API概要
Device APIは、サーバー側でデバイスのtagとalias情報のクエリ、設定、更新、削除に使用されます。
以下の3セットのAPIを含みます:device、tag、alias。それぞれの用途は次のとおりです:
- device:デバイスの各種属性(tag、aliasを含む)のクエリ/設定に使用されます。
- tag:デバイスのtagのクエリ/設定/削除に使用されます。
- alias:デバイスのaliasのクエリ/設定/削除に使用されます。
使用に必要なキー情報はregistration IDです:
デバイスのregistration_idは、クライアントを統合した後に取得できます。詳細はWebのAPIドキュメントを参照してください。
サーバーはデバイスのregistrationID値を取得するAPIを提供していません。開発者はクライアントからregistration IDを取得し、開発者サーバーにアップロードして保存する必要があります。
AppKey配下のTag数量のクエリ
宛先URL
GET /v4/tags_count
リクエスト例
リクエストヘッダー
GET /v4/tags_count
Authorization: Basic (base64 auth string)
Accept: application/json
コマンド例
curl -X GET http://127.0.0.1/v4/tags_count?tags=tag1&tags=tag2&platform=ios -u "appKey:appSecret"
リクエストパラメータ
- Tag:指定されたtag文字列をクエリする必須フィールドで、一度に最大1000個のtagをクエリできます(tags=tag1&tags=tag2&tags=tag3)。
- platform:指定されたプラットフォームをクエリする必須フィールドで、オプションの値はandroid、iosです。その他の値は許可されません。
レスポンス例
- 成功レスポンスには、
tagsCount
フィールドを含むJSONオブジェクトが返されます。これはキーと値のペアのコレクションで、キーはtag名、値はそのtagのカウントです。 - リクエストが失敗した場合は、エラー情報を含むJSONオブジェクトが返されます。
code
フィールドはエラーコードを示し、message
フィールドはエラーメッセージを示します。
成功レスポンス
{
"tagsCount": {
"tag1": 0,
"tag2": 1,
"tag3": 2
}
}
失敗レスポンス
{
"error": {
"code": 21008,
"message": "app_key is not a 24 size string or does not exist"
}
}
デバイスのaliasとラベルのクエリ
- 現在のデバイスのすべての属性(tag、aliasを含む)を取得します。
呼び出しアドレス
GET /v4/devices/{registration_id}
リクエスト例
リクエストヘッダー
GET /v4/devices/{registration_id}
Authorization: Basic (base64 auth string)
Accept: application/json
リクエストパラメータ
- なし
レスポンス例
成功レスポンス
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
レスポンスデータ
{"tags": ["tag1", "tag2"],
"alias": "alias1"
}
- 統計情報が見つからない場合はnullになり、それ以外の場合は統計情報の値になります。
デバイスのaliasとラベルの設定
- 現在のデバイスの指定された属性(tag、aliasを含む)を更新します。
呼び出しアドレス
POST /v4/devices/{registration_id}
リクエスト例
リクエストヘッダー
POST /v4/devices/{registration_id}
Authorization: Basic (base64 auth string)
Accept: application/json
リクエストデータ
{
"tags": {
"add": [
"tag1",
"tag2"
],
"remove": [
"tag3",
"tag4"
]
},
"alias": "alias1",
}
リクエストパラメータ
- tags:add、removeまたは空文字列の指定をサポートします。tagsパラメータが空文字列の場合は、すべてのtagをクリアすることを意味します。add/removeの下では、指定されたtagを追加または削除します。
- alias:デバイスのalias属性を更新します。aliasが空文字列の場合は、指定されたデバイスのaliasを削除します。
レスポンス例
成功レスポンス
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
レスポンスデータ
success
失敗レスポンス
{
"error":{
"code":27002,
"message":"unknown error"
}
}
デバイスの削除
- デバイスを削除します。
呼び出しアドレス
DELETE /v4/devices/{registration_id}
リクエスト例
リクエストヘッダー
DELETE /v4/devices/{registration_id}
Authorization: Basic (base64 auth string)
Accept: application/json
リクエストデータ
- なし
リクエストパラメータ
- なし
レスポンス例
成功レスポンス
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
レスポンスデータ
success
失敗レスポンス
{
"error":{
"code":27002,
"message":"unknown error"
}
}
タグリストのクエリ
- 現在のアプリケーションのすべてのtagのリストを取得します。
呼び出しアドレス
GET /v4/tags/
リクエスト例
リクエストヘッダー
GET /v4/tags/
Authorization: Basic (base64 auth string)
Accept: application/json
リクエストパラメータ
- なし
レスポンス例
成功レスポンス
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
レスポンスデータ
{
"tags": [
"tag1",
"tag2"
]
}
- 統計情報が見つからない場合は統計情報の値はnullになり、それ以外の場合は統計情報の値になります。
デバイスとtagのバインド関係のクエリ
- デバイスがtag配下にあるかどうかをクエリします。
呼び出しアドレス
GET /v4/tags/{tag_value}/registration_ids/{registration_id}
リクエスト例
リクエストヘッダー
GET /v4/tags/{tag_value}/registration_ids/090c1f59f89
Authorization: Basic (base64 auth string)
Accept: application/json
リクエストパラメータ
- registration_id 必須、デバイスのregistration_id
レスポンス例
成功レスポンス
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
レスポンスデータ
{"result": true/false}
タグの更新
- tagに対してデバイスの追加または削除を行います。
呼び出しアドレス
POST /v4/tags/{tag_value}
リクエスト例
リクエストヘッダー
POST /v4/tags/{tag_value}
Authorization: Basic (base64 auth string)
Accept: application/json
リクエストデータ
{
"registration_ids":{
"add": [
"registration_id1",
"registration_id2"
],
"remove": [
"registration_id1",
"registration_id2"
]
}
}
リクエストパラメータ
- action アクションタイプで、"add"、"remove"の2つのオプションがあり、リクエストが「追加」还是「削除」を識別します。
- registration_ids 追加/削除するデバイスのregistration_id。
- add/removeはそれぞれ最大1000台のデバイスをサポートします。
レスポンス例
成功レスポンス
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
レスポンスデータ
success
失敗レスポンス
{
"error": {
"code": 27005,
"message": "registration id is illegal",
"data": "{\"invalid_regids\":[\"18071adc021ff8df80\",\"100d85592955c1f1058\"]}"
}
}
タグの削除
tagを削除し、tagとデバイスの関連付けを解除します。
呼び出しアドレス
DELETE /v4/tags/{tag_value}
リクエスト例
リクエストヘッダー
DELETE /v4/tags/{tag_value}?platform=web
Authorization: Basic (base64 auth string)
Accept: application/json
リクエストパラメータ
- platform オプションパラメータで、指定しない場合はすべてのプラットフォームをデフォルトとします。
レスポンス例
成功レスポンス
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-
レスポンスデータ
success
失敗レスポンス
{
"error":{
"code":27002,
"message":"unknown error"
}
}
alias(デバイスとのバインド関係)のクエリ
GET /v4/aliases/{alias_value}
- 指定されたalias配下のデバイスを取得し。
呼び出しアドレス
GET /v4/aliases/{alias_value}
リクエスト例
リクエストヘッダー
GET /v4/aliases/{alias_value}?platform=web
Authorization: Basic (base64 auth string)
Accept: application/json
リクエストパラメータ
- platform オプションパラメータで、指定しない場合はすべてのプラットフォームをデフォルトとします。
レスポンス例
成功レスポンス
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
レスポンスデータ
{
"registration_ids": [
"registration_id1",
"registration_id2"
]
}
- 統計情報が見つからない場合は統計情報の値はnullになり、それ以外の場合は統計情報の値になります。
Aliasの削除
aliasと、aliasとデバイスのバインド関係を削除します。
DELETE /v4/aliases/{alias_value}
リクエスト例
リクエストヘッダー
DELETE /v4/aliases/{alias_value}?platform=web
Authorization: Basic (base64 auth string)
Accept: application/json
リクエストパラメータ
- platform オプションパラメータで、指定しない場合はすべてのプラットフォームをデフォルトとします。
レスポンス例
- 成功
success
- 失敗
{
"error":{
"code":27002,
"message":"unknown error"
}
}
ユーザーオンライン状態の取得
呼び出しアドレス
POST /v4/devices/status/
リクエスト例
リクエストヘッダー
POST /v4/devices/status/
Authorization: Basic (base64 auth string)
Accept: application/json
リクエストデータ
{
"registration_ids": [
"010b81b3582",
"0207870f1b8",
"0207870f9b8"
]
}
リクエストパラメータ
- registration_ids オンライン状態を確認する必要があるユーザーのregistration_idで、最大1000個のregistration_idsをクエリできます。
- このAPIを呼び出すには、事前にこのサービスを開通したAppkeyを申請する必要があります。
レスポンス例
成功レスポンス
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
レスポンスデータ
[
{
"regid": "010b81b3582",
"online": true
},
{
"regid": "0207870f1b8",
"online": false,
"last_online_time": "2014-12-16 10:57:07"
},
{
"regid": "0207870f9b8",
"online": false
}
]
レスポンスデータの説明
- online
- true:10分以内にオンライン中
- false:10分以上オンラインではない
- last_online_time
- onlineがtrueの場合は、このフィールドは返されません。
- onlineがfalseで、このフィールドが返されない場合は、最終オンライン時間は2日前です。
- 無効なregidまたはappkeyに属さないregidの場合は、検証に失敗します。
TAG/aliasクォータ情報クエリインターフェース
指定されたAppKey、プラットフォーム、tagの関連クォータ情報をクエリします。単一クエリのtag数は1,000を超えることができません。
呼び出しアドレス
GET /v4/tags/quota-info?tags=tag1&platform=android
Authorization: Basic (base64 auth string)
Accept: application/json
リクエスト例
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=='
成功レスポンス
{
"data": {
"totalTagQuota": 100000,
"useTagQuota": 1,
"totalAliasQuota": 100000,
"useAliasQuota": 3,
"tagUidQuotaDetail": [
{
"tagName": "tag1",
"totalUidQuota": 100000,
"useUidQuota": 0
},
{
"tagName": "tag2",
"totalUidQuota": 100000,
"useUidQuota": 0
}
]
}
}
レスポンスフィールドの定義:
- totalTagQuota:アプリケーション配下のtagの総クォータを示します。
- useTagQuota:使用済みのtagクォータを示します。
- totalAliasQuota:アプリケーション配下のaliasの総クォータを示します。
- useAliasQuota:使用済みのaliasクォータを示します。
- tagUidQuotaDetail:各tagのデバイスクォータの詳細を示します。
失敗レスポンス
{
"error": {
"code": 27002,
"message": "Illegal parameter"
}
}
業務戻りコード
コード | 説明 | 詳細説明 | HTTPステータスコード |
---|---|---|---|
21004 | 認証エラー | 無効なappkeyです。 | 401 |
27000 | システムメモリエラー | 再試行してください。 | 500 |
27001 | パラメータエラー | 認証情報が空です。 | 401 |
27002 | パラメータエラー | 無効なパラメータです。 | 400 |
27004 | パラメータエラー | 認証に失敗しました。 | 401 |
27005 | パラメータエラー | 無効なregisID形式です。 | 400 |
21008 | パラメータエラー | app_keyが24文字の文字列ではないか、存在しません。 | 400 |
27010 | パラメータエラー | aliasはすでに他のregidにバインドされています。 | 400 |
27011 | システム制限 | デバイスにバインドされているtagの数が制限を超えています。1台のデバイスは最大100個のtagをバインドできます。 | 401 |
27012 | パラメータエラー | デバイスがバインドしようとしているtagが存在しません。 | 401 |
27013 | パラメータエラー | アプリケーション内のtagの数が制限を超えています。1つのアプリケーションは最大100,000個のtagを作成できます。 | 401 |
27014 | システム制限 | tag内のデバイスバインド数が制限を超えています。1つのtagは最大100,000台のデバイスをバインドできます。 | 401 |
27015 | パラメータエラー | デバイスにバインドされているAliasが存在しません。 | 401 |
27016 | システム制限 | アプリケーション内のaliasの数が制限を超えています。1つのアプリケーションは最大100,000個のaliasを作成できます。 | 401 |
27017 | パラメータエラー | tagの長さが40文字を超えています。 | 401 |