目次
- service BoltzGateway
- message Message
- message apns.Header
- message gcm.Header
- message webpush.Header
- message adm.Header
- message Parameters
- message Event
- message DeliveryFailure
- message TokenRenewal
- message UnavailableTokenEvent
- message StatisticsQuery
- message MasterStatistics
- message SlaveStatistics
- message MemoryStatistics
- enum Priority
- enum FailureKind
- enum Platform
BoltzEngine gRPC リファレンス
BoltzEngine が提供する gRPC のメソッド・オブジェクトに関する説明です。
service BoltzGateway
BoltzEngine に対するリクエストを送信するサービスです。
Send メソッド
指定されたメッセージを各デバイスへ送信します。
1rpc Send (Message) returns (stream Event);引数
送信するメッセージを表す Message オブジェクト
戻り値
Event オブジェクトのストリーム
FetchStatistics メソッド
BoltzEngine クラスタの性能情報を取得します。(boltz status コマンド相当)
1rpc FetchStatistics (StatisticsQuery) returns (MasterStatistics);引数
StatisticsQuery オブジェクト (パラメータなし)
戻り値
MasterStatistics オブジェクト
FetchFeedback メソッド
APNs のフィードバックサービスに接続して無効トークンの一覧を取得します。
1rpc FetchFeedback (apns.Header) returns (stream UnavailableTokenEvent);引数
apns.Header オブジェクト
戻り値
UnavailableTokenEvent オブジェクトのストリーム
message Message
送信する1つのメッセージを表すオブジェクトです。同一の内容のメッセージを複数のデバイスへ送信できます。
プロパティ
| 値 | 型 | 説明 |
|---|---|---|
| apnsHeader | apns.Header | APNs への接続情報を表す apns.Header オブジェクト |
| gcmHeader | gcm.Header | FCM への接続情報を表す gcm.Header オブジェクト |
| webpushHeader | webpush.Header | WebPush への接続情報を表す webpush.Header オブジェクト |
| admHeader | adm.Header | ADM への接続情報を表す adm.Header オブジェクト |
| tokens | repeated string | 送信先のデバイストークンの一覧 ※1 |
| priority | Priority | メッセージ配信の優先度。未定義値の場合はプラットフォームごとのデフォルト値を使用します。 |
| expiration | uint32 | メッセージ配信の有効期限 (Unix time) |
| collapseKey | string | メッセージをまとめる文字列 (URLセーフな文字で32文字まで) |
| payload | string | APNs へ送信する JSON ペイロード (APNs へ送信するトークンがセットされている場合は必須) |
| parameters | gcm.Parameters | FCM/ADM へ送信するパラメータ (FCM/ADM へ送信するトークンがセットされている場合は必須) |
| body | string | WebPush へ送るペイロード (WebPush へ送信するトークンがセットされている場合は必須) |
| bandwidth | int32 | 1秒あたりの通知数 (0で無制限) |
- ※1: トークンの表現は下記の通りです。
- APNsの場合は
"1" + (hexエンコードされたトークン) - FCMの場合は
"2" + (FCMの登録ID) - WebPushの場合は
"4" + {"v":1,"endpoint":"(WebPushエンドポイント)","p256dh":"(ブラウザ公開鍵)","auth":"(WebPush乱数)"} - ADMの場合は
"5" + (ADM登録ID)
- APNsの場合は
message apns.Header
APNs の認証情報を表すオブジェクトです。
プロパティ
| 値 | 型 | 説明 |
|---|---|---|
| address | string | 接続先のAPNsサービスを指定します (※1) |
| keyPEMBlock | bytes | バイナリインターフェイス使用時: 秘密鍵PEMファイルの内容を指定します |
| certPEMBlock | bytes | バイナリインターフェイス使用時: 証明書PEMファイルの内容を指定します |
| insecureSkipVerify | bool | 接続時の証明書検証をスキップします。デバッグ用途での使用を想定しており、通常は false のままお使いください。 |
| issuer | string | HTTP/2使用時: p8 ファイルの issuer 値を指定します (通常 ADP/ADEP の Team ID を指定します) |
| keyID | string | HTTP/2使用時: p8ファイルの keyID を指定します(キー作成時に発行されます) |
| privateKey | string | HTTP/2使用時: p8ファイルの内容を指定します。 |
| topic | string | HTTP/2使用時: 送信先トピックを指定します (通常アプリの Bundle Identifier を指定します) |
※1: APNs の接続先指定は、通常以下のいずれかとなります。
| インターフェイス | 環境 | 操作 | 指定値 |
|---|---|---|---|
| バイナリ | Production | 送信(Send) | gateway.push.apple.com:2195 |
| バイナリ | Production | フィードバック受信(FetchFeedback) | feedback.push.apple.com:2196 |
| バイナリ | Sandbox | 送信(Send) | gateway.sandbox.push.apple.com:2195 |
| バイナリ | Sandbox | フィードバック受信(FetchFeedback) | feedback.sandbox.push.apple.com:2196 |
| HTTP/2 | Production | 送信(Send) | https://api.push.apple.com/ |
| HTTP/2 | Sandbox | 送信(Send) | https://api.development.push.apple.com/ |
message gcm.Header
FCM の認証情報を表すオブジェクトです。
プロパティ
| 値 | 型 | 説明 |
|---|---|---|
| requestURL | string | 接続先のFCMサービスのURL・アドレスを指定します (※1) |
| serverKey | string | FCM Legacy API 使用時: FCM サーバーキーを指定します |
| senderID | string | FCM Legacy API 使用時: FCM 送信者ID値を指定します (数値) |
| insecureSkipVerify | bool | 接続時の証明書検証をスキップします。デバッグ用途での使用を想定しており、通常は false のままお使いください。 |
| serviceAccount | string | FCM HTTP v1 API使用時: service-account.json の内容を指定します |
※1: FCM の通常の接続先指定および値の判定方法は、以下の通りです。
| 使用API | 判定 | 指定値 |
|---|---|---|
| FCM Legacy API (HTTP) | http で始まり v1 を含まない | https://fcm.googleapis.com/fcm/send |
| FCM Legacy API (XMPP) | http で始まらない | fcm-xmpp.googleapis.com:5235 |
| FCM HTTP v1 API | http で始まり v1 を含む | https://fcm.googleapis.com/v1/ |
message webpush.Header
WebPush の認証情報を表すオブジェクトです。
プロパティ
| 値 | 型 | 説明 |
|---|---|---|
| subject | string | 送信者を識別するURIを指定します。(mailto: もしくは https: ではじまるものを指定します) |
| privateKey | string | サーバー秘密鍵を指定します。 |
| publicKey | string | サーバー公開鍵を指定します。 |
| insecureSkipVerify | bool | 接続時の証明書検証をスキップします。デバッグ用途での使用を想定しており、通常は false のままお使いください。 |
message adm.Header
ADM の認証情報を表すオブジェクトです。
プロパティ
| 値 | 型 | 説明 |
|---|---|---|
| originURL | string | ADM リクエストのオリジンを指定します (通常 https://api.amazon.com を指定します) |
| tokenURL | string | OAuth2 認証 URL を指定します (通常 https://api.amazon.com/auth/o2/token を指定します) |
| clientID | string | OAuth2 クライアント ID を指定します。 |
| clientSecret | string | OAuth2 クライアントシークレットを指定します。 |
| insecureSkipVerify | bool | 接続時の証明書検証をスキップします。デバッグ用途での使用を想定しており、通常は false のままお使いください。 |
message Parameters
送信する FCM メッセージ内容を表すオブジェクトです。
プロパティ
| 値 | 型 | 説明 |
|---|---|---|
| collapseKey | string | メッセージをまとめる文字列 (URLセーフな文字で32文字まで, 親となる Message オブジェクトの値が優先されます) |
| delayWhileIdle | bool | FCM/Androidのみ: 端末がアイドル状態のときはメッセージの送信を保留します。 |
| contentAvaliable | bool | FCM/iOSのみ: 送信されるメッセージに content-avaliable フラグをセットします。 |
| mutableContent | bool | FCM/iOSのみ: 送信されるメッセージに mutable-content フラグをセットします。 |
| data | map<string, string> | data ペイロードとして配信する内容をセットします。 |
| notification | map<string, string> | notification ペイロードとして配信する内容をセットします。 |
message Event
送信時に発生するトークン変更・エラー等のイベントオブジェクトです。
プロパティ
| 値 | 型 | 説明 |
|---|---|---|
| platform | Platform | プラットフォーム |
| event | oneof | 発生したイベントの種別 (以下2つのどちらかの値がセットされます) |
| ├ failed | DeliveryFailure | 送信失敗イベント およびその内容 |
| └ renewed | TokenRenewal | トークン変更イベント およびその内容 |
message DeliveryFailure
送信失敗イベントの内容を表すオブジェクトです。
プロパティ
| 値 | 型 | 説明 |
|---|---|---|
| kind | FailureKind | 失敗の理由 |
| token | string | エラーが発生したトークン |
| status | string | プラットフォーム固有のエラー文字列(診断用なのでエラー判定に使うべきではありません) |
| timestamp | uint32 | 検出された時刻 (通常は発生時刻がセットされるが、INVALID_TOKEN などの場合は更に前の時刻を示す場合があります) |
message TokenRenewal
トークン変更イベントの内容を表すオブジェクトです。
プロパティ
| 値 | 型 | 説明 |
|---|---|---|
| recentToken | string | 送信時に使用したトークン |
| latestToken | string | 新しいトークン |
message UnavailableTokenEvent
APNs 無効トークン取得時に発生するイベントを表すオブジェクトです。
プロパティ
| 値 | 型 | 説明 |
|---|---|---|
| timestamp | uint32 | トークンが無効と判定された時間 (Unix time) |
| token | string | 無効になったトークン |
message StatisticsQuery
性能情報取得クエリを表すオブジェクトです。将来の拡張のためにオブジェクトのみが定義されています。
プロパティ
なし
message MasterStatistics
BoltzEngine Master の性能情報を表すオブジェクトです。
プロパティ
| 値 | 型 | 説明 |
|---|---|---|
| version | string | BoltzEngine のバージョン |
| compiler | string | BoltzEngine のコンパイルに使用された Go コンパイラのバージョン |
| numProcessor | int32 | 使用可能なCPU数 |
| numTask | int32 | 起動している並列タスク数 |
| memStatistics | MemoryStatistics | メモリの性能情報 |
| numPending | int32 | スレーブに対して送信待ちしているリクエストの数です |
| slaveStatistics | map<string, SlaveStatistics> | BoltzEngine Slave の性能情報 |
message SlaveStatistics
BoltzEngine Slave の性能情報を表すオブジェクトです。
プロパティ
| 値 | 型 | 説明 |
|---|---|---|
| version | string | BoltzEngine のコンパイルに使用された Go コンパイラのバージョン |
| compiler | string | BoltzEngine のコンパイルに使用された Go コンパイラの名前 |
| numProcessor | int32 | 使用可能なCPU数 |
| numTask | int32 | 起動している並列タスク数 |
| memStatistics | MemoryStatistics | メモリの性能情報 |
| maxAgents | int32 | 最大の同時リクエスト許可数 |
| numTotalRequests | int32 | 起動から処理したリクエストの数 |
| numDelivering | int32 | 現在送信中の端末数 |
| numDeliveredDevices | int32 | 送信完了した端末数 |
| totalExecutionTime | int64 | 送信に要した時間の合計 |
| latestExecutionTime | int64 | 最後のリクエストで送信に要した時間 |
| lastUpdate | int64 | この情報の最終更新時間 (Unix time) |
| retryCount | int32 | リトライが発生した回数 |
message MemoryStatistics
メモリの性能情報を表すオブジェクトです。
プロパティ
| 値 | 型 | 説明 |
|---|---|---|
| alloc | uint64 | 割り当てられているメモリ容量 |
| totalAlloc | uint64 | 割り当てたメモリ容量 |
| sys | uint64 | システムに確保されたメモリ容量 |
| mallocs | uint64 | mallocによりメモリを割り当てた回数 |
| frees | uint64 | freeした回数 |
| heapAlloc | uint64 | ヒープに割り当てられているメモリ容量 |
| heapSys | uint64 | システムに確保されたメモリ容量(ヒープ) |
| heapObjects | uint64 | ヒープにあるオブジェクト数 |
enum Priority
メッセージの優先順位を表す値です。
| 値 | 内容 | APNs | FCM | WebPush |
|---|---|---|---|---|
| HIGH | 可能な限り速く届ける。デバイスがスリープでも通知する。 | 10 | high | high |
| NORMAL | バッテリ状況を考慮して通知する。APNs に対して content-avaliable フラグを指定する場合、この値を指定する必要がある。 | 5 | normal | normal |
| LOW | WebPush のみ: トピックの更新など | 5 | normal | low |
| VERY_LOW | WebPush のみ: 広告など | 5 | normal | very-low |
enum FailureKind
送信失敗の内容を表す値です。
| 値 | 内容 |
|---|---|
| TEMPORARY_ERROR | 一時的なエラー。再送すれば届く可能性がある。 |
| INVALID_TOKEN | 不正なトークン。このトークンは次回以降使用すべきではない。 |
| INVALID_PAYLOAD | 不正なメッセージ。メッセージの内容を確認すること。 |
enum Platform
プラットフォームを表す値です。
| 値 | 内容 |
|---|---|
| UNKNOWN | 不明 |
| APNS | APNs |
| FCM | FCM |
| WEBPUSH | WebPush |
| ADM | ADM |