Platio Funnelアダプタードキュメント

Platio Funnelアダプターを使用すると、Funnel経由でPlatioにデータを受け渡すことができます。

このドキュメントでは、Platio Funnelアダプターの設定の仕方について説明します。このドキュメントは、Platio StudioやPlatio iOSアプリ、Platio Data Consoleに慣れ親しんでいることを前提としています。もし、これらに慣れていない場合、まず、Platio Studioでプレートを作成して使ってみてください。

また、データの形式などは、Platio APIと同等になっていますので、詳細については、Platio API ドキュメントを参照してください。

概要

Platio Funnelアダプターを使用すると、IoTゲートウェイなどからSORACOMに送信されたレコードを、Platioのミニアプリにレコードとして追加することができます。SORACOMに送信されたレコード一つ一つが、Platioのレコードとして追加されます。

Funnelの設定で、どのプレート(アプリケーション)のどのミニアプリ(コレクション)にレコードを追加するのかを指定します。また、SORACOMに送信されたレコードのどの項目を、Platioのどのフィールド(カラム)に割り当てるかを、ある程度指定することができます。

Platio側の準備

Platio Funnelアダプターの設定をする前に、Platio Studioを使用して、データを受け取るためのプレートを作成・デプロイし、Funnelから受け取ったデータを追加するためのユーザーを追加します。ユーザーを作成するときには、「レコードや添付ファイルへのAPIでのアクセスを許可」にチェックを入れてください。

プレートを作成したら、そのプレートのPlatio Data Consoleに、上記で作成したユーザーでログインし、開発者ページにアクセスします。

このページで、以下の情報を確認します。

また、APIトークンの発行ボタンをクリックして、APIトークンを取得します。表示される、トークンIDと秘密トークンをメモします。

これらのIDの詳細については、Platio API ドキュメントを参照してください。

Funnelの設定

ここでは、SORACOMコンソールを使用して、SIMグループに対してFunnelの設定を行なう方法を説明します。

  1. SIMグループのリストを開き、新しくSIMグループを作成するか、既存のSIMグループを開きます。
  2. SORACOM Funnel設定を開いてONにし、Funnelの設定ができるようにします。
  3. 転送先サービスとして、「Platio」を選択します。
  4. 転送先URLとして、「https://api.plat.io/」を指定します。
  5. アプリケーションIDとして、上記で確認したアプリケーションIDを指定します。
  6. コレクションIDとして、上記で確認したコレクションIDを指定します。
  7. 値のテンプレート (JMESPath)として、設定する値のテンプレートを指定します。詳細は値のテンプレートの項を参照してください。
  8. 必要に応じて、値のテンプレートにレコードを渡す、のチェックボックスをチェックします。詳細は値のテンプレートの項を参照してください。
  9. 認証情報を設定します。既存の認証情報を選択するか、新しい認証情報を追加します。認証情報には以下の情報を指定します。
    1. 種別として、「Platio 認証情報」を選択します。
    2. トークンIDとして、上記で確認したトークンIDを指定します。
    3. 秘密トークンとして、上記で確認した秘密トークンを指定します。
  10. 送信データ形式を「JSON」にします。

値のテンプレート

値のテンプレートには、Funnelに渡されたJSONから、どのようにPlatioのレコードに変換するかを、JMESPathで指定します。

例えば、ゲートウェイなどからSORACOMに送信されるJSONが、以下のような形式だとします。

{
  "timestamp": "2017-06-06T11:43:43.000Z",
  "temperature": 29.5,
  "humidity": 43.6
}

ここで、timestampの値を日時カラム(カラムIDがc4cc8d14)、temperatureの値を気温カラム(c4bc667d)、humidityの値を湿度カラム(cce60aa9)に入れるとすると、以下のようなJMESPathを指定します。

{
  c4cc8d14: {
    type: 'DateTime',
    value: timestamp
  },
  c4bc667d: {
    type: 'Number',
    value: temperature
  },
  cce60aa9: {
    type: 'Number',
    value: humidity
  }
}

これにより、上記のJSONの例では、以下のようなJSONが生成され、この値を使用してPlatioのレコードが作成されます。

{
  "c4cc8d14": {
    "type": "DateTime",
    "value": "2017-06-06T11:43:43.000Z"
  },
  "c4bc667d": {
    "type": "Number",
    "value": 29.5
  },
  "cce60aa9": {
    "type": "Number",
    "value": 43.6
  }
}

値のテンプレートにレコードを渡すのチェックボックスをチェックした場合、ゲートウェイから渡されたデータだけではなく、Funnelのレコード自体が変換元のJSONとして使われます。ただし、元のレコードと比較すると、以下の点が異なります。

例えば、以下のようなJSONが変換元のJSONとして使われます。Funnelから渡される情報を使用する必要がある場合には、このチェックボックスをチェックしてください。

{
  "timestamp": 1452791551499,
  "timestampDateTime": "2016-01-14T17:12:31.499Z",
  "destination" : {
    "applicationId": "pmeecfumurfgy3lml6udxbrm4ci",
    "collectionId": "t54308ca"
  },
  "payloads": {
    "timestamp": "2017-06-06T11:43:43.000Z",
    "temperature": 29.5,
    "humidity": 43.6
  },
  "sourceProtocol": "HTTP",
  "imsi": "440XXXXXXXXXXXX"
}

Platioに渡す値の形式の詳細については、Platio API ドキュメントを参照してください。