ネットワークカメラ推進会

Network camera promotion and communication

NX WitnessのAPI 汎用イベントについて

 NX WitnessのAPIを動かしてみる

 

 今回は、NX WitnessのAPIを動作してみることにする。まずは、NX Witnessをインストールする必要がある。インストール方法については、前回の記事を参考にして欲しい。

 

www.networkcamera.work

 

APIのドキュメントを参照する

 

 NX WitnessのAPIについては、一般に公開されているため、WEBで閲覧することができる。技術者の方は以下のURLを参照して欲しい。

 

https://meta.nxvms.com/doc/developers/api-tool/

  ※または、インストールしたサーバーに接続してAPIのドキュメントを参照することもできる。

 

 今回は、NX Witnessに”イベント情報”を作成する方法について検証したい。

 

 

 画面左上に、虫眼鏡のアイコンがあるので”Event”と入力し、検索を行う。

 

 『/api/createEvent POST』という項目がある。これが、新たにNX Witnessのサーバーに対してイベントを作成する方法だ。

 

 

 あとは、このようにサンプルの例文が表示されるので、この文字列を変更するだけだ。

 

 ここで、 "cameraRefs"という項目がある。

 

 

  "cameraRefs"については、NX Witnessサーバーでカメラ設定を開くと、”カメラID”というものが表示されるので、これをコピー&ペーストすればよい。

 

事前設定

 

 NX Witnessでは、Bearerトークンを利用したユーザー認証が推奨されている。しかしながら、既存のアプリケーションとの連携によっては、Bearerトークンをうまく利用できないこともあるだろう。

 

 そのため、システム連携用のユーザーを新たに作成する。

 

 

 画面左上の『三』をクリックし、『ユーザー管理』画面を起動する。『新規ユーザーの作成』ボタンを押下する。

 ここでAPI連携用のユーザーを作成する。なお、ロールは今回、”管理者”として作成することにした。

 

 また、ここが最も重要なポイントであるが、『有効 :  』の ”:”ボタンをクリックすると、『このユーザーのdigest認証を許可する』という表示が起動するので、digest認証を許可した状態で『OK』ボタンをクリックする。

 

 これで、digest認証でのAPI連携が可能となる。

 

POSTMANによる検証

 

 それでは早速、検証を行う。

 HTTPのリクエストには以下のように記述する。

 

 POST https://127.0.0.1:7001/api/createEvent

       ※ポート番号が『7001』となっているが、これはNX Witnessのデフォルトのサーバーポートが"7001”であるためだ。

 

 BODYについては、以下のように記述した。

  ※今回、POSTMANでコマンドを投げたタイミングでVMS側にログを残したいため、タイムスタンプについては、記載を除外した。

 (タイムスタンプを残したままだと、タイムスタンプの日時でVMS側にログが残ることとなる。)

 

{
    "caption": "test",
    "metadata": {
        "cameraRefs": [
            "カメラのID番号"
        ]
    }
}

 

NW Witness側のアクションの設定

 

 実際にこのイベントのリクエストが発生した場合に、NX Witness側でどのようなアクションを実行させるのか定義する。

 

 

 右クリックして、『カメラルール』を開く。画面右上の『+追加』ボタンを押下する。トリガーで『汎用イベント』を選択する。

 

 キャプションに次の内容を含むの欄に、先ほどPOST MANの検証時に記述していた"test"と入力する。あとは、画面右側のアクションメニューにて、このイベントが発生した際に、どのような挙動を発生させるのか定義するだけだ。

 

動作検証

 

 実際にテストを行ってみよう。

 

 

 このようにPOSTMANでコマンドを投げることで、汎用イベントを発生させることに成功した。

 

比較的、簡単なAPIの連携方法であるため、NX Witnessに対して、何らかのイベントを発生させたい場合は、試してみると良いだろう。