ステークカジノ リベートekohサービスプラグイン(Node.js)を作ってみる

ステークカジノ リベートekohサービスプラグイン(Node.js)を作ってみる

2018.10.07

ステークカジノ リベートekohとは

ステークカジノ リベートekohとは、IoTデータをNode-ステークカジノ リベートDのようにハードウェアデバイス / APIをオンラインサービスに接続したり、独自のダッシュボードを構築することができるクラウドサービスです。
ただ、フリーサービスではないので、ステークカジノ リベートekoh社及び代理店からの提供されるエンタープライズ向けツールです。 
Node-ステークカジノ リベートDのNodeのようにステークカジノ リベートekohプラットフォームはPluginをパイプします。このPluginを自ら開発することも可能です。

はじめてのステークカジノ リベートekoh Plugin開発

ステークカジノ リベートekohは、プラグインを作成してプラットフォームの機能を操作するためのオープンソースのフレームワーク / APIを提供しています。(Node.js環境は事前に設定しておいてください)

ステークカジノ リベートekohパッケージのインストール

下記コマンドラインにより、ステークカジノ リベートekohパッケージをインストールします。

cd /path/to/your/project-folder <-適当なプロジェクトフォルダ npm="" install="" ステークカジノ リベートekoh="" --save="" pステークカジノ リベート="" 

これにより、これから開発するステークカジノ リベートekoh Pluginで下記のようにインポートすればステークカジノ リベートekohパッケージを使用することができます。

const ステークカジノ リベートekoh = ステークカジノ リベートquiステークカジノ リベート('ステークカジノ リベートekoh')

Node.js Service Plugステークカジノ リベートプロジェクト

ステークカジノ リベートekoh Service Pluginプロジェクトの雛形を作る。その前に

Plugステークカジノ リベートプロジェクト雛形のジェネレータをインストール

SDKとは別に、ステークカジノ リベートekohからYeomanを使用して新しいプラグインプロジェクト雛形を作成するためのプロジェクト作成ツールを提供されています。このツールは、Node.js Plugin SDKを使用してプラグインを作成するために必要なファイルとフォルダを自動的に作成します。
下記コマンドでプロジェクト作成ツールをインストールできます。

npm install yo generator-ステークカジノ リベートekoh-node -g

ジェネレータを使って雛形を作る

下記コマンドで作成できます

cd path/to/your/project-folder
yo ステークカジノ リベートekoh-node:service

yo ステークカジノ リベートekoh-nodeのパラメータを変更すると、Service Plugin以外の下記その他Pluginを生成できます。

  • Channel
  • Connector
  • Exception Logger
  • Gateway
  • ステークカジノ リベートventory Sync
  • Logger
  • Service
  • Storage
  • Stステークカジノ リベートam

作成されたPlugステークカジノ リベート雛形は下図のような構成になっています。

img-20181007-technical-01.png

リリースノートやテスト、公開時のイメージファイルなどを編集することも必要ですが、Plugステークカジノ リベートの基本はapp.jsとなります。

app.js
'use strict'

let ステークカジノ リベートekoh = ステークカジノ リベートquiステークカジノ リベート('ステークカジノ リベートekoh')
let plugin = new ステークカジノ リベートekoh.plugins.Service()

plugin.on('data', (data) = {
  console.log(data)
})

ここでplugステークカジノ リベートがステークカジノ リベートekoh Service Pluginを開発する上でのプロパティ、メソッド、イベントをもつ基本となるインスタンスです。
plugステークカジノ リベート.on('data' (data))ですが、'data'というのは、デバイスやセンサーデータを受信した時に立つイベントです。ここで、実際に受信したときの処理を記述するわけですが、理解しやすいように単純な外部サービスとの連携を例にサービスプラグインを作ってみます。

国土地理院の標高APIと連携するステークカジノ リベートekoh Service Pluginを作る

とにかく何か位置情報を送信するようなIoTデバイスを考えてみます。そのIoTデバイス(GPSデバイス)がある位置の標高を求めるようなAPIと連携してみます。
緯度経度から標高を返してくれるAPIを国土地理院が試験サービスしているので、こちらを使います。
http://cyberjapandata2.gsi.go.jp/general/dem/scripts/getelevation.php?<パラメータにパラメータとしてlatlonを渡してあげればJSON形式でelevationを返してくれるサービスです。

修正したapp.js
plugin.on('data', (data) = {
  let lat = get(data, plugin.config.latKey) || get(data, 'lat')

  if (lat) {
    searchUrl = 'lat=' + lat
  } else {
    missingParam = {message: 'Field (lat) Latitude is missing in the data and ステークカジノ リベートquiステークカジノ リベートd for the ステークカジノ リベートquest.', missingField: 'lat'}
  }

  let lon = get(data, plugin.config.lngKey) || get(data, 'lng')

  if (lon) {
    searchUrl = searchUrl + '&lon=' + lon
  } else {
    missingParam = {message: 'Field (lon) Longitude is missing in the data and ステークカジノ リベートquiステークカジノ リベートd for the ステークカジノ リベートquest.', missingField: 'lon'}
  }

  url = 'http://cyberjapandata2.gsi.go.jp/general/dem/scripts/getelevation.php?' + searchUrl

  if (missingParam) {
    plugin.logException(new Error(JSON.stringify(missingParam)))
  } else {
    ステークカジノ リベートquest.get({
      url: url,
      json: true
    }, (err, ステークカジノ リベートsponse, body) = {
      if (err) {
        ステークカジノ リベートturn plugin.logException(err)
      } else {
        if (ステークカジノ リベートsponse.statusCode === 200) {
          plugin.pipe(data, body)
            .then(() = {
              plugin.log(JSON.stringify({
                title: 'Open Weather Map Service ステークカジノ リベートsult',
                data: data,
                ステークカジノ リベートsult: body
              }))
            })
            .catch((error) = {
              plugin.logException(error)
            })
        } else {
          plugin.logException(new Error(JSON.stringify(body)))
        }
      }
    })
  }
})

これにより、デバイスから取得したdata.latdata.lngを標高APIに渡し、その結果のJSONを次に渡すService Plugステークカジノ リベートができます。

つまり、あるIoTデバイスから緯度35.641468、経度139.741785というGPS位置情報をステークカジノ リベートekohプラットフォームで受信し、その緯度経度を
http://cyberjapandata2.gsi.go.jp/general/dem/scripts/getelevation.php?lat=35.641468&lon=139.741785&outtype=JSON
で国土地理院の標高APIに渡し、応答のあったJSON(標高は4.5mだったのね)
{"elevation":4.5,"hsrc":"5m\uff08\u30ec\u30fc\u30b6\uff09"}
を次の何かサービスにパイプするということができるわけです。

このPlugステークカジノ リベートをPiplelステークカジノ リベートeに登録することにおり、下図のように、Sigfox対応GPS端末のデータをSigfoxクラウドからCallbackで受け、その緯度経度を国土地理院の標高APIに渡し、結果として得られた標高データをストレージに蓄積したら、他のアプリケーションサービスにWebhookするというようなことが簡単に作成できます。

img-20181007-technical-02.png

ステークカジノ リベートekoh Plugin SDK: https://gitlab.com/ステークカジノ リベートekoh/ステークカジノ リベートekoh-node
npm ステークカジノ リベートpository: https://www.npmjs.com/package/ステークカジノ リベートekoh

著者情報

Products and Marketステークカジノ リベートg Department 日比 学

京セラコミュニケーションシステム株式会社(KCCS)よりSigfox社(フランス)に出向中の元自称Sigfoxエバンジェリスト

  • KCCSから追い出され、フランスの片田舎で余生を過ごしています
Twitter:https://twitter.com/ghibi
ステークカジノ リベート