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)

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 data ペイロードとして配信する内容をセットします。
notification map 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 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

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

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

お問い合わせはこちら

記事へ戻る