REST API 概要
基本制約
- APIはHTTPおよびREST仕様に準拠するよう設計されています。たとえば、クエリリクエストはGetメソッドを使用し、送信リクエストはPOSTメソッドを使用します。リクエストが対応するHTTPメソッドでない場合、エラーが返されます。
- 特に指定がない限り、呼び出しパラメータの値はUTF-8、URLエンコードで変換する必要があります。
リクエストレート制限
サービスの安定性と公平性を確保するため、APIには呼び出し頻度の制限が設けられています。各AppKeyのQPS(毎秒クエリ数)制限は以下の通りです:
- 標準制限:1秒あたり最大500リクエスト
- 高度制限:有料プランのサブスクライバーで、有料AppKeyに更高のQPS制限が必要な場合は、営業チームに連絡してください:Sales@engagelab.com。
データセンターとベースURL
2025年3月19日から、Engagelab Push APIに新規アクセスする開発者は、以下のドメイン名を使用してください。.cc接尾辞の元のBase URLは引き続き使用可能ですが、最新のドメイン名に切り替えることを推奨します。
データセンター | ベースURL |
---|---|
シンガポール | https://pushapi-sgp.engagelab.com |
アメリカ合衆国バージニア州 | https://pushapi-usva.engagelab.com |
ドイツ・フランクフルト | https://pushapi-defra.engagelab.com |
香港 | https://pushapi-hk.engagelab.com |
REST APIを使用する場合は、選択したベースURLと特定のAPIパスを組み合わせて、完全なエンドポイントを取得する必要があります。
{base URL}/{API path}
ここで、{base URL}は選択したデータセンターのベースURLを表し、{API path}は特定のAPIエンドポイントパスを表します。たとえば、v4/devices/{registration_id}
などです。
例:
- シンガポールのデータセンターを選択し、ベースURLが
https://pushapi-sgp.engagelab.com
であるとします。 - 特定のデバイスの登録情報を削除したい場合、APIパスが
v4/devices/{registration_id}
であるとすると、完全なAPIエンドポイントは次のようになります:
https://pushapi-sgp.engagelab.com/v4/devices/{registration_id}
ここで、{registration_id}
は特定のデバイスの登録IDを表します。
この方法を使用すると、異なるデータセンターにアクセスするための完全なAPIエンドポイントURLを構築できます。
認証方法
Engagelab REST APIはHTTP基本認証を使用します。 基本的な方法は、HTTPヘッダーにAuthorizationを追加することです:
Authorization: Basic base64_auth_string
base64_auth_stringの生成アルゴリズム:base64(appKey:masterSecret)
appKey、コロン、masterSecretで構成される文字列をbase64で変換します。
AppPushページに移動し、APP情報ページでAppKeyとMaster Secretの情報を取得してください。
認証例
appKeyが「c96f42e0d2e662e45d035ab1」、masterSecretが「df4d59e84eac2f9d53b36f12」の場合、curlコマンドを介してPush API v4を呼び出す例は以下の通りです:
curl --insecure -X POST -v https://pushapi-sgp.engagelab.com/v4/push
-H "Content-Type: application/json"
-u "c96f42e0d2e662e45d035ab1:df4d59e84eac2f9d53b36f12"
-d '{
"from": "push",
"to": "all",
"body": {
"platform": ["android","ios"],
"notification": {
"alert": "Hi,MTPush !",
"notification": {
"alert" :"Hello, Push!",
"android": {
"alert": "Hi, Push!",
"title": "Send to Android",
"builder_id": 1,
"extras": {
"newsid": 321
}
},
"ios": {
"alert": "Hi, MTPush!",
"sound": "default",
"badge": "+1",
"extras": {
"newsid": 321
}
}
}
}
},
"request_id": "12345678",
"custom_args": "business info"
}'
HTTPリクエスト例:
> POST /v4/push HTTP/1.1
> Authorization: Basic Yzk2ZjQyZTBkMmU2NjJlNDVkMDM1YWIxOmRmNGQ1OWU4NGVhYzJmOWQ1M2IzNmYxMg==