呼吸が浅くなりがちなのでMi Band3に深呼吸を促すリマインダが来るようにした
先日XiaomiのMi Band3を買いました。
www.hitowaft.work
スマホとBluetoothで接続して、LINEやTwitter、その他様々なアプリからの通知を確認することができます。
1時間座りっぱなしでいると「動きましょう」と通知してくれる機能は元々あるのですが、せっかくなのでもっと自分向けの通知を作って受け取ってみたいと思います。
使ったもの
- Google Apps Script(以下GAS)
- LINE Notify
手順
- LINE Notifyに登録してアクセストークンを取得する
- GASに後ほど記載のコードを貼り付けて、文言を好きに編集する
- GASでスクリプトのプロパティに
ACCESS_TOKEN
を登録する(省略可・後述) - GASのトリガーをセットして、お好みの間隔で通知を受け取る
LINE Notifyのアクセストークン取得時の注意事項
LINE Notifyのアクセストークンを取得する際は、トークン名を一文字にしておきます。名前が長くなると、その分文言が入るスペースがなくなってしまうので…。
また、LINEのグループを作成してそこにLINE Notifyを招待し通知を受け取るやり方もあるのですが、そうすると[グループ名][LINE Notify]文言
という形で通知が来て、ほぼ画面が埋まってしまうため1:1でLINE Notifyから通知を受け取る
を選択します。
コード
function myFunction() { var messages = ["深呼吸しよう", "背筋を伸ばそう", "hoge", "fuga", "foo", "bar"]; var random_num = Math.floor( Math.random() * messages.length ); sendHttpPost(messages[random_num]) } function sendHttpPost(message){ token = PropertiesService.getScriptProperties().getProperty("ACCESS_TOKEN") var options = { "method" : "post", "payload" : "message=" + message, "headers" : {"Authorization" : "Bearer "+ token} }; UrlFetchApp.fetch("https://notify-api.line.me/api/notify",options); }
コード解説
特に難しいことはしてませんが、JSやGASに不慣れな人に向けて少し解説します。
messages
変数に通知したい文言を配列として入れています。
この配列の中から、実行ごとにランダムで一つ選ばれた文言がトリガーで決めた間隔で通知されます。
各文言を、全角なら13文字・半角なら34文字までに抑えると画面からはみ出しません。
token = PropertiesService.getScriptProperties().getProperty("ACCESS_TOKEN")
の部分では、GASでスクリプトのプロパティに登録した値を取りにいってます。
どこにも公開しないならtoken = "LINE Notifyで取得したトークン"
みたいにベタ書きでもいいかな。
動かないなと思ったら上部にある関数を選択
からmyFunction
を選んで実行してください。
こんな感じで通知が来ます。
[良]となってるのが、トークン取得時につけた名前です。何かいい意味の漢字が良いなと思ったけど、特に思いつかなったのでそのまま良にしました。