0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SORACOM GPS マルチユニットのデータをSORACOM FluxでLINEに通知する

0
Posted at

先日、SORACOM GPS マルチユニットのデータをkintoneに登録できるようしました。

次にしたことはLINEへの通知。SORACOM Flux から LINE Messaging API へ Webhook を送信する方法で設定しました。

前回の記事では、GPSマルチユニットからの送信は5分ごとにしています。kintoneに移動履歴は5分ごと蓄積するという設定を生かしつつ、そこにアクションを追加して、30分に一度、家族に現在地を共有するイメージです。

LINE公式アカウントで無料だと月200通という制限もあるとのことですが、30分に一度なら、月数回、数時間の利用想定なら、余裕で200通に収まりそうで好都合です。

今後、類似の設定をするためのメモとして設定内容をまとめておきます。

事前準備

チャネルを作って、Messageing APIを設定する。
Messaging APIは、LINE Developersコンソールだけでは設定できなくて、LINE 公式アカウントを作成する必要がある。画面通りの指示で操作すればOK。

LINE Developers

LINE Developers コンソール

通知内容

LINE Developers:メッセージを送信する

チャネルアクセストークン

トップ > (対象のプロバイダー) > (対象のチャネル) > Messaging API設定
一番下までスクロールしたところの「チャネルアクセストークン」

あなたのユーザーID

トップ > (対象のプロバイダー) > (対象のチャネル)
下の方にスクロールしたところの「あなたのユーザーID」

SORACOM Flux アプリのアクションの設定

前回作成したFlux アプリに、LINE通知用のアクションを追加する方法で設定します。

CONDITION(アクションの実行条件)

CONDITON
((getUTCMinutes(now()) >= 0 && getUTCMinutes(now()) <= 5) || (getUTCMinutes(now()) >= 30 && getUTCMinutes(now()) <= 35)) 

ここはうちのGeminiくんが「簡単にできるよ。このコードで!」ってサクッと出してくれたんですが、何度やってもうまくいかず…。適当すぎたらしいので、下記のリファレンスを見つけてきて、一緒に考え直しました。

Home > ドキュメント > SORACOM Flux > アクションリファレンス > アクション、コンディションの記法

CONFIG

  • HTTPメソッド
    • {POST`
  • URL
    • https://api.line.me/v2/bot/message/push
  • HTTPヘッダー
    • Authorization:Bearer (チャネルアクセストークン)
    • Content-Type:application/json
  • HTTPボディ
    • application/jsonを選択。内容はお好みで。
HTTPボディ
  {
    "to": "あなたのユーザーID",
    "messages": [
      {
        "type": "text",
        "text": "【GPSマルチユニット】\n${getUTCYear(addHours(now(), 9))}/${int(getUTCMonth(addHours(now(), 9))/10)}${getUTCMonth(addHours(now(), 9))%10}/${int(getUTCDate(addHours(now(), 9))/10)}${getUTCDate(addHours(now(), 9))%10} ${int(getUTCHours(addHours(now(), 9))/10)}${getUTCHours(addHours(now(), 9))%10}:${int(getUTCMinutes(addHours(now(), 9))/10)}${getUTCMinutes(addHours(now(), 9))%10}\n${payload.temp}℃ ${payload.humi}%\n加速度x,y,z(mG):${payload.x},${payload.y},${payload.z}\n現在地(緯度,経度):${payload.lat},${payload.lon}\n\nGoogleマップで確認:\nhttps://www.google.com/maps/search/?api=1&query=${payload.lat},${payload.lon}"
      }
    ]
  }

これで、移動中のこまめな連絡を忘れても心配かけることが減りそうです。
バイクで一人とか、深夜の帰省ひとりドライブとかちょくちょくあって、心配かけてるんですよね。

追記

LINE通知は、緯度経度がnullかどうかでメッセージを変えるようにしました。
5分に一回の送信で、一番上が無条件でkintone行き。下の二つが、通知の時刻が0~5分、30~35分の場合のみ、LINEに送信するアクションです。LINEの二つは、CONDITIONで場合分けして別のアクションにしています。アクション1つで、JSONで出し分けできるのかもしれないけれど、ひとまずこれで。

スクリーンショット 2026-04-07 113423.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?