M2X無料アカウント停止
メールを見逃していたが、日本時間で2020/04/16 02:00 にM2Xの無料アカウントが停止される。2020/02/15にそのメールが着ていたが、件名からはそのような重大なメールであることがわからず読んでいなかった。
データエクスポート
- データエクスポートコマンド発行→ジョブID発行
- ジョブIDでジョブ状態を確認
- ジョブ終了でデータエクスポート用URLが表示されるのでwebブラウザなどでダウンロード
という流れになる。
例
適当なLinuxホストにログインして(今回はWSLを利用)データエクスポートコマンドをcurlで実行する。devices/以降はデバイスID、X-M2X-KEY:にはデバイスAPIキーを指定する。
curl -i "https://api-m2x.att.com/v2/devices/<DEVICE-ID>/values/export.csv" -H "X-M2X-KEY: <DEVICE-API-KEY>"
次のような応答でエクスポートジョブが受理されたことがわかる。
HTTP/1.1 202 Accepted Content-Type: application/json; charset=UTF-8 Location: https://api-m2x.att.com/v2/jobs/<JOB-ID> X-M2X-VERSION: v2.112.2 Vary: Accept-Encoding X-RateLimit-Limit: 25 X-RateLimit-Remaining: 24 X-RateLimit-Reset: 1586865919 Content-Length: 21 {"status":"accepted"}
最後のacceptedで受理がわかり、ジョブ確認用のURLがLocation:の次に表示されている。
エクスポートジョブの状態を以下のコマンドで確認する。ここで指定するjobs/以降のIDは上のジョブ確認用のIDで、X-M2X-KEY:にはデバイスキーではなくマスターAPIキーを指定する。マスターAPIキーはアカウント設定からMaster Keyで確認できる。
curl -i "https://api-m2x.att.com/v2/jobs/<JOB-ID>" -H "X-M2X-KEY: <MASTER-API-KEY>"
HTTP/1.1 200 OK Content-Type: application/json; charset=UTF-8 X-M2X-VERSION: v2.112.2 Vary: Accept-Encoding X-RateLimit-Limit: 25 X-RateLimit-Remaining: 24 X-RateLimit-Reset: 1586866332 Content-Length: 220 {"id":"<job-id>","state":"working","output":null,"errors":null,"started":"2020-04-14T12:05:18.160Z","finished":null,"created":"2020-04-14T12:05:17.996Z","updated":"2020-04-14T12:05:18.160Z"}
まだstateはworkingなのでエクスポートジョブが実行中である。データサイズにもよるが、数分後にもう一度ジョブ確認のコマンドを発行すると、今度は以下のような応答が得られる。
{"id":"<job-id>","state":"complete","output":null,"errors":null,"started":"2020-04-14T12:05:18.160Z","finished":"2020-04-14T12:23:13.818Z","created":"2020-04-14T12:05:17.996Z","updated":"2020-04-14T12:23:13.819Z","result":{"url":"http://export.m2x.sl.attcompute.com/<DEVICE-ID>%20-%20<DEVICE-NAME>%20-%202020-04-14T12:22:53.270Z.csv"}}
url:以降に、csvフォーマットのファイルダウンロードURLが書かれているので、これをコピーしてwebブラウザなどでダウンロードする。もちろんcurlでダウンロードしても良いが、webブラウザのほうが進捗がわかりやすい。
M2Xからの移行先は
どこがいいだろうか?