Skip to content

アラート通知APIクライアント

準備

クライアントライブラリの入手

  • /bidal/alert-api-client/blob/develop/build/AlertApiClientModule.js

上記のソースを取得し、HTML側で読み込みます。

<script src='/path/to/AlertApiClientModule.js'></script>

上記のように読み込むと、AlertApiClient という名前のクラスを使用することができるようになります。

APIキーの入手

アラート通知APIを利用するためには、APIキーと秘密鍵を申請して取得する必要があります。

実行例

下記に呼び出し例を表示します。

function onAlertResponse(message) {
    let json = JSON.parse(message);
    console.log(json);
}
function onAlertError(message) {
    let json = JSON.parse(message);
    console.log(json);
}
let features = [];
let coodinates = [
                        [
                        [135.19050, 34.69430],
                        [135.19050, 34.68681],
                        [135.20224, 34.68681],
                        [135.20224, 34.69430],
                        [135.19050, 34.69430]
                        ]
                    ];
let feature = { type: "Feature", geometry: { type: "Polygon", coodinates: coodinates }, properties: { comment: "foobar", theme: "rm_xrain", threshold: 1, interval: 60 } };
features.push(feature);

let host = location.host;
let client_options = {
    onalertmessage: (jsonrpc_response) => onAlertResponse(jsonrpc_response),
    onerrormessage: (jsonrpc_response) => onAlertError(jsonrpc_response),
    timeout: 5e3,
    maxAttempts: 10,
    onopen: (event) => console.log('Connected!', event),
    onmessage: (messageevent) => console.log('Received:', messageevent),
    onreconnect: (event) => console.log('Reconnecting...', event),
    onmaximum: (closeevent) => console.log('Stop Attempting!', closeevent),
    onclose: (closeevent) => console.log('Closed!', closeevent),
    onerror: (event) => console.log('Error:', event),
    apikey: "alertapikey_0123456",
    secret: "alertapisecret_0123456",
    apipath: "/api/v1/alertapi/socket.io/"
};
var client = new AlertApiClient(host, client_options);
client.setAlert(1, features, 3, "2016-09-04 17:00:00+09", "2019-01-10 12:00:00+09");
client.alterAlert(1, features, 3, "2016-09-04 17:00:00+09", "2019-01-10 12:00:00+09");

使い方

AlertApiClientクラス

function onAlertResponse(message) {
    let json = JSON.parse(message);
    console.log(json);
}
...
let client_options = {
    onalertmessage: (jsonrpc_response) => onAlertResponse(jsonrpc_response),
    onerrormessage: (jsonrpc_response) => onAlertError(jsonrpc_response),
    ....
};
var client = new AlertApiClient(host, client_options);
client.setAlert(1, features, 3, "2016-09-04 17:00:00+09", "2019-01-10 12:00:00+09");

AlertApiClientオブジェクトを作成してsetAlertを実行すると、アラート通知APIは条件に応じてアラート通知メッセージをブラウザに送信します。その際コールバック関数として定義済のonAlertResponseが実行されます。

上記の例では、アラート通知の度にブラウザコンソール上にjsonオブジェクトが表示されます。

jsonrpc_response(コールバック関数本体ではmessage) に渡されるアラート通知メッセージの詳細は notifyAlertを参照してください。

コンストラクタ

パラメータ 実行例中変数名 内容
第1パラメータ host アラート通知APIを呼び出すホスト名
第2パラメータ client_options アラート通知APIがアラート通知メッセージをブラウザに送信した時に呼び出す関数などを纏めたオブジェクト

第2パラメータのオブジェクトは、下記のようなキーを使って関数と文字列群を構成してください。

アラートを受信した際には onalertmessage で指定した関数が呼ばれますので、アラート受信時の動作はこの関数に実装します。

また,その他のコールバック関数も必要に応じて実装してください。

キー 内容
onalertmessage アラート通知APIがブラウザに送信したアラート通知メッセージを受信した時(notifyAlert)に呼び出されるコールバック関数を指定します。
実行例では onAlertResponse というコールバック関数呼び出し時に、パラメータの message としてJSON-RPCの文字列が渡されます。
onerrormessage アラート通知APIがブラウザに送信したエラーメッセージを受信した時に呼び出されるコールバック関数を指定します。
実行例ではonAlertErrorというコールバック関数呼び出し時に、パラメータの jsonrpc_response としてJSON-RPCの文字列が渡されます。
timeout タイムアウト時間を秒で指定します。実行例(5e3)では5000秒としています。デフォルト値は1000秒になります。
maxAttempts 接続エラー時のリトライ回数を指定します。デフォルトでinfinity(無限)になります。
onopen 接続開始時に呼び出されるコールバック関数を指定します。デフォルトはnullになります。
WebSocketプロパティのonopenに準拠しています。
onmessage アラート通知APIからメッセージを受信した時に呼び出されるコールバック関数を指定します。デフォルトはnullになります。
WebSocketプロパティのonmessageに準拠しています。
onmaximum 再接続時に呼び出されるコールバック関数を指定します。デフォルトはnullになります。
WebSocketプロパティのoncloseに準拠しています。
onclose 接続クローズ時に呼び出されるコールバック関数を指定します。デフォルトはnullになります。
WebSocketプロパティのoncloseに準拠しています。
onerror 接続エラー時に呼び出されるコールバック関数を指定します。デフォルトはnullになります。
WebSocketプロパティのonerrorに準拠しています。
apikey 入手したAPIキーを指定します。
secret 入手した秘密鍵を指定します。
apipath /api/v1/alertapi/socket.io/ という文字列を指定します。

setAlert

アラート通知API使用開始時に、APIに対してアラート取得条件を指定するメソッドです。

実行例より下記について解説します。

client.setAlert(1, features, 3, "2016-09-04 17:00:00+09", "2019-01-10 12:00:00+09");
パラメータ 内容
第1パラメータ jsonrpcにおけるIDです。任意の数値を指定します。
第2パラメータ GeoJSON仕様のFeatureの配列です。アラートを取得したい範囲をこのFeatureで指定します。
各Featureのpropertiesで必須のパラメータ
theme 監視対象テーマ名を指定します。
threshold リスク値の下限。全てを取得する場合は0を指定します。
interval チェックのインターバル(秒)を指定します。
第3パラメータ シミュレーション内再生速度(倍率)を指定します。
第4パラメータ 監視を開始するシミュレーション内日時です。省略すると現在時刻となります。"YYYY-MM-DD HH-MI-SS+09" 形式の日時を指定します。
第5パラメータ 通知を開始する実世界日時,省略すると現在時刻となります。"YYYY-MM-DD HH-MI-SS+09" 形式の日時を指定します。

alterAlert

アラート通知API使用中に、APIに対してアラート取得条件を変更するメソッドです。

実行例より下記について解説します。

client.alterAlert(1, features, 3, "2016-09-04 17:00:00+09", "2019-01-10 12:00:00+09");

各パラメータについてはsetAlertと同様ですが、setAlertで使用していないテーマが指定された場合はエラーとなります。

テーマ

properties の "theme" については、マニュアルをご覧ください。

onalertmessageの例

onalertmessageで指定したコールバック関数のパラメータとして渡される(使用例中のjsonrpc_response及びコールバック関数本体のmessage)内容については、notifyAlertのマニュアルをご覧ください。