BoltzEngine HTTP API ゲートウェイ

BoltzEngine の RPC インターフェイスを HTTP からアクセスできるようにするゲートウェイサービスです。

これは BoltzEngine 本体とは別のサービスとなっており、HTTP と RPC インターフェイスとの仲立ちを行います。

概要

BoltzEngine HTTP API ゲートウェイは BoltzEngine v1.1 以降で boltz-http-proxy コマンドとして同梱されます。

リクエストとして JSON でリクエストオブジェクトで指定されている JSON を送信すると処理が行われ、以下の形式の JSON がレスポンスが戻ります。error 要素には BoltzEngine 上で言語レベル、TCP レベルでのエラーが発生した際にエラーメッセージ文字列がセットされます。

1{
2  "result": レスポンスオブジェクト,
3  "error": null
4}

また、APNS, FCM 共に認証情報については HTTP API ゲートウェイの起動パラメータとして渡されているため、渡す必要はありません。

特殊処理

JSON-RPC インターフェイスで BASE64 を渡すことになっているなっている以下のデータはエンコードが行われます。

  • iOS のデバイストークン: 16進数表記の文字列と相互変換されます。
  • iOS の通知ペイロード: 文字列と相互変換されます。(JSON を文字列で指定します)

メソッド一覧

POST /boltz/apns/request

APNs へメッセージを送信します。RPC の BoltzEngine.BroadcastMessagesToAPNs に対応します。

  • 導入バージョン:BoltzEngine v1.1

  • リクエストオブジェクト:apns.Request (Addr, Credential は指定しません)

  • レスポンスオブジェクト:apns.Response

  • Request (application/json)

 1{
 2  "Messages": [
 3    {
 4      "ID": 0,
 5      "Expir": 1432798652,
 6      "Token": "960d1918d38f9bb8f5f676154ca23da366aed2d1",
 7      "Payload": "{\"aps\":{\"alert\":\"hello\"}}",
 8      "Priority": 10
 9    },
10    {
11      "ID": 0,
12      "Expir": 1432798652,
13      "Token": "bb8f5f6960d1918d38f976154ca23da366aed2d1",
14      "Payload": "{\"aps\":{\"alert\":\"hello\"}}",
15      "Priority": 10
16    }
17  ]
18}
  • Response (application/json)
1{
2  "result": {
3    "FailedMessages": null
4  },
5  "error": null
6}

GET /boltz/apns/feedback

APNs のフィードバックサービスへアクセスし、無効になったトークンの一覧を取得します。RPC の BoltzEngine.ReceiveFeedbackFromAPNs に対応します。

  • 導入バージョン:BoltzEngine v1.1

  • レスポンスオブジェクト:apns.FBResponse

  • Response (application/json)

 1{
 2  "result": {
 3    "Body": [
 4      {
 5        "Timestamp": 1432798652,
 6        "Token": "bb8f5f6960d1918d38f976154ca23da366aed2d1"
 7      },
 8      {
 9        "Timestamp": 1432798652,
10        "Token": "bb8f5f6960d1918d38f976154ca23da366aed2d1"
11      }
12    ]
13  },
14  "error": null
15}

POST /boltz/gcm/request

FCM へメッセージを送信します。RPC の BoltzEngine.BroadcastMessagesToGCM に対応します。

  • 導入バージョン:BoltzEngine v1.1
  • リクエストオブジェクト:gcm.Request (URL, Credential は指定しません)
  • レスポンスオブジェクト:gcm.Response

boltz-http-proxy の設定で、FCM のリクエスト URL をどう指定したかによって、以下のメッセージ形式が変化します。

URL が http:// または https:// で開始する場合

  • Request (application/json)
 1{
 2  "Messages": [
 3    {
 4      "registration_ids": [
 5        "<<REGISTRATION_ID>>",
 6        "<<REGISTRATION_ID>>"
 7      ],
 8      "data": {
 9        "alert": "........................",
10        "mid": "55",
11        "sound": "default"
12      },
13      "collapse_key": "37",
14      "time_to_live": 300
15    }
16  ]
17}

URL が http:// または https:// 以外の場合

  • Request (application/json)
 1{
 2  "Messages": [
 3    {
 4      "message_id": "<<MESSAGE ID>>",
 5      "to": "<<REGISTRATION_ID>>",
 6      "data": {
 7        "alert": "........................",
 8        "mid": "55",
 9        "sound": "default"
10      },
11      "collapse_key": "37",
12      "time_to_live": 300
13    },
14    {
15      "message_id": "<<MESSAGE ID>>",
16      "to": "<<REGISTRATION_ID>>",
17      "data": {
18        "alert": "........................",
19        "mid": "55",
20        "sound": "default"
21      },
22      "collapse_key": "37",
23      "time_to_live": 300
24    }
25  ]
26}
  • Response (application/json)
1{
2  "result": {
3    "FailedMessages": null
4  },
5  "error": null
6}

POST /boltz/adm/request

BoltzEngine HTTP API Gateway では、ADM への通知はサポートしていません。

POST /boltz/webpush/request

WebPush へメッセージを送信します。RPC の BoltzEngine.BroadcastMessagesToWebPush に対応します。

  • 導入バージョン:BoltzEngine v2.2

  • リクエストオブジェクト:webpush.Request (Credential は指定しません)

  • レスポンスオブジェクト:webpush.Response

  • Request (application/json)

 1{
 2  "Messages": [
 3    {
 4      "Token": "{\"v\":1,\"endpoint\":\"https://example.com/token1\",\"p256dh\":\"xxxx\",\"auth\":\"xxxx\"}",
 5      "Payload": "{\"alert\":\"hello\"}",
 6      "TimeToLive": 60,
 7      "Urgency": "high"
 8    },
 9    {
10      "Token": "{\"v\":1,\"endpoint\":\"https://example.com/token2\",\"p256dh\":\"xxxx\",\"auth\":\"xxxx\"}",
11      "Payload": "{\"alert\":\"hello\"}",
12      "TimeToLive": 60,
13      "Urgency": "high"
14    }
15  ]
16}
  • Response (application/json)
1{
2  "result": {
3    "FailedMessages": null
4  },
5  "error": null
6}

GET /boltz/activities

BoltzEngine の性能情報を取得します。RPC の BoltzEngine.QueryActivities に対応します。

  • 導入バージョン:BoltzEngine v1.1

  • レスポンスオブジェクト:boltz.MasterActivity

  • Response (application/json)

 1{
 2  "result": {
 3    "PendingCount": 0,
 4    "SlaveActivities": {
 5      ":13007": {
 6        "MaxAgents": 30,
 7        "RequestCount": 0,
 8        "DeliveringCount": 0,
 9        "DeliveredCount": 0,
10        "TotalExecutionTime": 0,
11        "LatestExecutionTime": 0,
12        "LastUpdate": "2015-05-29T16:27:46.538940751+09:00"
13      }
14    }
15  },
16  "error": null
17} 

ご不明な点はありませんか?

機能の詳細、導入のご検討、お見積もり依頼などは、お気軽にお問い合わせください。
担当者から追ってご連絡いたします。

お問い合わせはこちら