どうも、若松です。
今回は寝かしつけ状況をLINEに通知する仕組みを構築したので、手順を残しておきます。
アプリ開発の動機
子育てをしていると寝かしつけの場面が頻繁に訪れます。
素直に寝てくれればいいのですが、時にはギャン泣きで長期戦になったりもします。
そうなると夫婦で交代しながら寝かしつけますが、交代のタイミングがとてもシビアなのです。
寝室で長時間泣いているのは交代する側もわかりますが、もうちょっとで寝そうな感じなのか全然お手上げなのかは区別がつきません。
寝そうなタイミングで入室してしまうと逆に起こして1からやり直しになってしまうため、それは避けたいところです。
そこで寝かしつけている側から状況を通知してもらい、交代が必要なのか判断できる仕組みを構築することで、必要なときに必要なケアをしあえるようにすることが狙いです。
アプリ概要
今回はSORACOMとLINEを用いてその仕組みを構築しました。
SORACOMで購入できるボタンをクリックするとLINEにメッセージが配信されます。
以前はそのロジックを組むのにAWS Lambdaなどが必要でしたが、今はSORACOM Fluxでローコード開発ができるので、LINEへのメッセージ配信はSORACOM内で完結しています。
アプリ構築
1. LINE 側の準備
まずは通知先となるLINEのMessaging API設定を行い、必要な情報を取得します。
-
アカウント作成
- LINE Developers アカウントを取得。
- LINE公式アカウントを作成。
-
プロバイダー作成
- LINE Developersでプロバイダーを作成します。
-
Messaging APIの設定
- LINE公式アカウントのプロバイダー管理画面で「Messaging API」を有効にし、LINE Developersの組織と紐付けます。
-
チャネルアクセストークンの取得
- [LINE Developers] > Messaging API設定タブから発行してコピー。
2. SORACOM 側の準備
2-1. デバイスの登録
SORACOMボタンの購入と設定を行います。
-
SORACOMユーザーコンソールから
SORACOM LTE-M Button for Enterpriseを購入します。(届くまでしばらく待ちます) - SORACOMボタンが届いたらSIM管理で状態を使用中にします。(ボタンに電池を入れてクリックすると自動で使用中になる)
- SIMグループを作成し、ボタンのSIMをそのグループに所属させます。
- グループ設定の「SORACOM Air 設定」でバイナリパーサーを有効にして、フォーマットに
@buttonと入力します。
2-2. SORACOM Flux の設定
SORACOM Fluxのアプリを作成してボタンイベントからLINE通知を行います。
-
アプリ作成
「SORACOM Flux」→「新しいアプリを作成する」→「最初から作成」を選択。 -
チャネル作成
- イベントソースに「IoTデバイス」を選択。
- イベントソース設定で先ほど作成した「IoTボタンのSIMグループ」を選択。
-
アクションの追加
「Webhook」アクションを追加し、以下の項目を入力します。
シングルクリックとダブルクリックで動作を変更するため、2つのアクションを作成します。
CONDITIONのアクションの実行条件
イベントのclickTypeNameの値によって動作を変えるため、以下のように設定します。
| 項目 | 設定値 |
|---|---|
| シングルクリック | event.payload.clickTypeName == "SINGLE" |
| ダブルクリック | event.payload.clickTypeName == "DOUBLE" |
| 長押し※今回不使用 | event.payload.clickTypeName == "LONG" |
HTTP メソッド
POST を選択します。
URL
https://api.line.me/v2/bot/message/broadcast を入力します。
※broadcastは公式アカウント全体にメッセージを配信する。
※broadcastをpushに変えるとボディのToで設定したユーザーのみにメッセージを配信する。
認証方法
Bearerトークン を選択します。
認証情報の追加から認証情報を登録します。
| 項目 | 設定値 |
|---|---|
| 認証情報 ID | 任意の文字列 |
| 種別 | API トークン認証情報 |
| API トークン | LINE Developersで取得したチャネルアクセストークン |
HTTP ヘッダー
Content-Type: application/json を入力します。
HTTP ボディ (application/json)
※ textにそのアクションで配信したいメッセージを指定
{
"messages": [
{
"type": "text",
"text": "ねんねしなくてピンチ!!"
}
]
}
全ての設定が終わるとFluxアプリはこのようになります。
3. テスト
設定が完了したら、実際にボタンを押してLINEに通知が届くか確認します。
私はそれぞれのクリックに以下の意味を持たせました。
- シングルクリック:寝ないので助けてほしい
- ダブルクリック:寝そうだから様子見
シングルクリックのメッセージ
ダブルクリックのメッセージ
LINE公式アカウントなので、友達に家族を招待すると同じメッセージが配信されます。
まとめ
SORACOM FluxのWebhookアクションを使うことで、Lambdaなどを書くことなく物理ボタンとLINEを連携させることができました。 寝かしつけ中に抱っこしながらスマホでメッセージを打つのはキビしいので、シンプルな操作でメッセージ配信ができるようになりとても楽になりました。思いの外簡単に構築できたので、同じ悩みを持っている方はぜひ試してみてください!



