API

データ連携(Webhook)とAPIの違い

ウェビオセンサーから得られたデータをサーバに送信する方法としてWebhookによるデータ連携機能とAPIを提供しております。

WebhookとAPIは、データを「どちら側から送るか」が違います。Webhookによるデータ連携機能は、ウェビオサーバー側から貴社サーバにデータを送るのに対して、APIは貴社サーバからウェビオサーバにアクセスしてデータを取得します。どちらもプロトコルはHTTP(S)、データはJSON形式です。

Webhookによるデータ連携を使うと、センサーからデータが届いた直後に情報を受け取れるため、よりリアルタイムで無駄のないデータの受信が可能です。一方APIを使うと、センサーからのデータの更新有無に関わらず、定期的にデータを取得する必要が生じるなど無駄が多く、リアルタイムでのデータ取得に向いていません。

ウェビオでは、APIではなく、Webhookによるデータ連携をを強くお勧めいたします。

WebhookとAPIの違い

共通

APIサーバのURLはhttps://api.webiot.io です。

HTTPヘッダーにAPIキーをセットしてください。

Authorization: Bearer [API_KEY]

APIキー

APIキーはウェビオコンソールから発行、再発行することが可能です。APIキーは64文字のランダムな英数字で構成されています。

例: zhZ3cguLBC2UtEFKpeXM9KWCG9wGgEtXaY6pKzDBWZhm6BLSmx3zMJxgkZYPRCVD

APIキーの権限は、ウェビオコンソールのログインIDに対応しており、あなたが「オーナー」となっているセンサーのデータにのみアクセス可能です。現状のところチーム機能で共有されているセンサーのデータにはアクセスできませんので、必要な場合はセンサーの「オーナー」にご依頼いただき、APIキーを取得してもらってください。

ウェブ上ではAPIキーを一般公開しないようにお願いいたします。

将来的には、センサーの最新データ取得に限定した、センサーごとのAPIキー(Access-Control-Allow-Origin: * 付き) を発行可能とする予定です。


最新データの取得API

ウェビオの各センサーの最新データをデータ種別ごとに取得できます。 温度・湿度・気圧センサーの場合は、temperatureのみ取得すれば、同時受信データ(value01-03)で湿度と気圧の情報も得られます。 センサーからの信号が途絶えている場合、最後に届いたデータが返されます。用途によっては、 "unixtime" で直近のデータか確認が必要です。

リクエスト

GET /api/sensors/[該当センサーのウェビオID]/[データ種別]

例: /api/sensors/BTXX01/temperature

curlでの送信例

curl "https://api.webiot.io/api/sensors/BTXX01/temperature" \
  -H "authorization: Bearer putYourOwnKeyHere"

レスポンス application/json

{
  "id": "BTXX01",
  "name": "test sensor name",
  "gatewayid": "G3XX01",
  "gatewayname": "test gateway name",
  "unixtime": 1501847516,
  "timestamptext": "2017-08-04T20:51:56.000+09:00",
  "datatype": "temperature",
  "value": 23.45,
  "unit": "℃",
  "value01": 23.45,
  "value02": 40.56,
  "value03": 1023.4567,
  "dataid": "112f49f0-8cb0-11e8-bab3-8909bb8001ac",
  "packetid": 255,
  "rssi": -80,
  "battery": 3.14
}

項目の詳細は、データ連携と同様です。


履歴データCSVの取得API

現在、ウェビオコンソールからダウンロードできるCSVと同じものがダウンロードできます。センサー別、月別となり、前日までのデータが含まれています。(毎日 01:00am(JST)ごろまでに更新)

リクエスト

GET /api/csv/[該当センサーのウェビオID]/[YYYY-MM]

例: /api/csv/BTXX01/2019-08

レスポンス text/csv

内容は、現在のウェビオコンソールでダウンロードできるCSVと同じです。

エラーが発生した場合

HTTPレスポンスコード200以外を返します。

  • レスポンス例 application/json
{
  "status": 403,
  "msg": "Invalid API Key"
}

【ウェビオI/Oのみ】出力信号の送信API

ウェビオI/Oの出力端子に、ON(1)/OFF(0)信号をAPIから送信できます。

リクエスト

PATCH /api/io/[該当ウェビオI/OのウェビオID]/[出力端子(output_1 又は output_2)]

content-type application/json

body {"value":"[1又は0]"}

curlでの送信例

curl "https://api.webiot.io/api/io/MEXX00/output_1" \
  -X PATCH \
  -H "authorization: Bearer putYourOwnKeyHere"  \
  -H "content-type: application/json" \
  -d '{"value":"1"}'

レスポンス application/json

{"status":200,"msg":"sent"}

エラーが発生した場合

HTTPレスポンスコード200以外を返します。

  • レスポンス例 application/json
{"status":403, "msg":"403 Forbidden"}      // ウェビオIDやAPIキーが間違っている場合

お問い合わせ

ご不明な点がございましたら、お気軽にお問い合わせ下さい。
ピクスー株式会社

  • 所在地: 〒150-0002 東京都渋谷区渋谷1-20-9 co-factory渋谷402 ピクスー株式会社
  • メール: info@webiot.io
  • 電話番号: 090-9863-0987(担当:塩澤)