
目次
- 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 |