MixServer Reference

マイページ

MixServer メンバーページ画面の画像

①CGI URL

ご自分で設置したCGIを使用する場合は、CGIのURLをここに設定します。
  • MixSodaが送信/受信するデータはここで設定されたCGIへリアルタイムにパスされます。
  • 通信プロトコルはHTTP、HTTPSを使用できます。
CGIの詳細は以下をご覧ください。

②Store Token

データストア機能を使用する場合は、ここにトークンを設定します。トークンはお好きな文字列を設定できます。
  • MixSodaが送信/受信するデータをCGI設置せずに取得/セットできます。
  • 7日前までのデータ取得、7日間のセット保持ができます。
  • トークンは不特定多数の人が使用するアプリには埋め込まないでください。
データストア機能の詳細は以下をご覧ください。

③ICCID, IMEI

  • MixServerを利用するMixSodaのICCIDとIMEIをここで登録します。
  • 「まとめて登録する」から一度に複数台登録することもできます。(要csvデータ)

CGIの詳細

CGIはHTTPリクエストヘッダーで以下の情報を取得できます。
  • x-iccid
  • x-time
MixSodaからの通信は以下のHTTPメソッドに変換されます。
  • データ送信時(IoT.OUT等): POST
  • データ受信時(IoT.IN等): GET
            
// IchigoJam BASICでIoTコマンドを使った場合のAzure側のJS例

const { app } = require('@azure/functions');

app.http('httpTrigger1', {
    methods: ['GET', 'POST'],
    authLevel: 'anonymous',
    handler: async (request, context) => {
        const iccid = request.headers.get("x-iccid");
        const time  = request.headers.get("x-time");
        context.log(`iccid:${iccid}, time:${time}`);

        if(request.method === "POST"){
            const buf = await request.arrayBuffer();
            const data = new DataView(buf).getInt32(0);
            context.log(`data: ${data}`);   // do something
            return {  };
        }else
        if(request.method === "GET"){
            const data = 1234;              // MixSodaが受信する数値
            const buf = new ArrayBuffer(4);
            new DataView(buf).setInt32(0, data);
            return { body: buf };
        }
    }
});
            

データストア機能の使い方

MixSodaから届いたデータを取得する

すべてのMixSoda:
GET http://mixsoda.io:2048/(token).csv[オプション]

特定のMixSoda:
GET http://mixsoda.io:2048/(token)/(ICCID).csv[オプション]
  • オプションを使用しない場合は最新の1件が取得できます。
  • HTTPSも使用できます。
  • 実験的に「Access-Control-Allow-Origin: *」を吐いていますが、負荷などの状況によっては削除されることがあります。また、Webアプリケーションなどにトークンを埋め込む場合はご注意ください。
オプション 機能 設定値
from 取得範囲(いつから)を指定する
  • UNIX時間(UTC) or 相対マイナス秒
  • 省略すると最新の1件を取得する
to 取得範囲(いつまで)を指定する
  • UNIX時間(UTC)
  • 省略すると現在時刻が設定される

オプション使用例

60秒前から現在時刻までのデータを取得する
http://mixsoda.io:2048/love_mixsoda_4649.csv?from=-60
UNIX時間 1659597207から現在時刻までのデータを取得する
http://mixsoda.io:2048/love_mixsoda_4649.csv?from=1659597207
ICCID 1234567890123456789 のMixSodaが送信したUNIX時間 1659597100から1659597207までのデータを取得する
http://mixsoda.io:2048/love_mixsoda_4649/1234567890123456789.csv?from=1659597100&to=1659597207
ICCID 1234567890123456789 のMixSodaが送信したUNIX時間 1659597207までの最新の1件を取得する
http://mixsoda.io:2048/love_mixsoda_4649/1234567890123456789.csv?to=1659597207

MixSodaに渡すデータをセットする

すべてのMixSoda:
POST http://mixsoda.io:2048/(token)

特定のMixSoda:
POST http://mixsoda.io:2048/(token)/(ICCID)
  • データは複数セットすることができます。
  • データは古い順にMixSodaに渡され、渡されたデータは削除されます。
  • Content-Lengthが0の場合、セットされているデータがすべて削除されます。
  • IoT.INコマンドでMixSodaに渡されるデータは4バイト固定です。4バイト未満のデータは4バイトに拡張してセットしてください。
  • HTTPSも使用できます。