sakura.io by IchigoSoda で IoT
IchigoSoda で sakura.io を使うメモをためる
IchigoJam(Soda)側から使うと楽なコマンド
- IOT.IN()
- PRINT IOT.IN() ... 自モジュールあての通信取得
- IOT.OUT()
- IOT.OUT(300) ... 自モジュールから sakura.io にvalue を送出
モジュール製造は終わってるんよねぇー
プロジェクトごとに、複数モジュールが紐付けられる
プロジェクトごとに、連携サービスを設定。関連モジュールからデータがくると、全部の連携サービスに投げてもらえるみたい。
プロジェクト詳細みると、その他にも色々できそう。とりあえずは、連携サービスだけでいけるかと判断してる。
連携サービス追加画面
ドキュメントはこちら → 連携サービス仕様 — sakura.io ドキュメント
今回やりたいことは IchigoSoda からなにか送られたら LINE通知をしたい。
LINE通知には LINE Notify を使う。
GitHub , IFTTT, Mackerel は ボタンぽちで連携が可能みたい
それ以外の場合は、アクセストークンを発行して、APIDocに沿って利用する。
GASから叩く時などは、アクセストークンを使うことになる。
トークン発行数は、100個/ユーザー。
API Rate Limit は 1000回/時間 ということで、普通の使い方なら十分に思う。
GAS でハンドルしてみる。
こんな流れかな。
<Sakura.io> ==outgoing.Webhook==> <GAS> ==POST==> <LINE Notify API>
- GAS で JSON ペイロードを受け取るWebアプリを作成して、公開
- 上記のURLを、sakura.io の outgoing.webhook に設定
- GASで受け取れたら、LINE Notify API に POST する
※GASのWebアプリURLが変更されないように操作
GAS を sakura.io の outgoing.webhook をうけとる
doPost(e) で受けるとこんな感じ。
eについては、Google公式を参照 > リクエスト パラメータ
e
{
parameters={},
parameter={},
queryString=,
postData=FileUpload,
contentLength=191.0,
contextPath=
}
POST 本文のコンテンツ テキストをみる
e.postData.contents
{
"module":"uXxxXxxxXXxc",
"type":"channels",
"datetime":"2023-11-13T06:56:57.544513251Z",
"payload":
{
"channels":[
{
"channel":0,
"type":"i",
"value":3,
"datetime":"2023-11-13T06:56:57.544513742Z"
}
]
}
}