キャッシュレス時代のおこづかい帳システムをもっと便利にしてみた

# はじめに

約一年前にこの記事を書きました！

https://qiita.com/cog1t0/items/8f404f7c299fccbeb821

ざっくりと構成はこんな感じです
![スクリーンショット 2023-11-22 19.59.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27192/4690c3cf-1cd1-beb2-df5f-6647b83ea555.png)

# でも結局使ってない！！！！
やっぱりLINEBotを開くひと手間がメンドーで、結局習慣化しませんでした。。。

# ならば、スマホ開く前にどうこうできる仕組みを！
というわけでこんなのを作ってみました

https://x.com/r19_tech/status/1727295895652430121?s=20

![スクリーンショット 2023-11-22 0.22.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27192/74483ff6-4af9-52b0-532c-1c94f1ac0790.png)

# つくりかた
## 前提条件
:::note warn
iPhoneのショートカット機能を使います。
Androidでも同様の機能があるらしいですが、持っていなくて未検証です。
:::

:::note warn
この記事の内容を知っている前提で話が進むので、まだ見てない人はまずこちらから見てください

https://qiita.com/cog1t0/items/8f404f7c299fccbeb821
:::

:::note warn
NFCタグをつかいます
![スクリーンショット 2023-11-22 20.10.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27192/f9195738-be14-5165-0dbe-d664f2056ff1.png)
[サンワサプライ NFCタグ(10枚入り) NXP NTAG213 ホワイト MM-NFCT](https://www.amazon.co.jp/gp/product/B00GXSGL5G) 1500円くらいでした
:::

## 実装
### 概要
:::note
iOSのショートカットアプリの「URLの内容を取得」を利用すると、APIが叩けることを利用して、おこづかい帳を更新します
:::

:::note
iOSのショートカットアプリの起動のきっかけに「特定のNFCタグを読み取った時」というのがあるので利用します
:::
### まずは工作
![スクリーンショット 2023-11-22 20.25.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27192/c264f73b-ad0d-3436-e9d8-2002565390d2.png)

### 【iPhone】ショートカットを作成
iPhoneにデフォルトで入っているショートカットというアプリでショートカットを作成します
「URLの内容を取得」と「通知する」を組み合わせます
![スクリーンショット 2023-11-22 20.28.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27192/5cf1dfd0-e822-23ef-99c4-ced1e025fe4d.png)

上記の手順でchargeが1000,500,100,10 の4種類のショートカットを用意します

### 【iPhone】オートメーションを作成
オートメーションで「どのNFCタグを読み取ったら」「どのショートカットを実行するか」を設定します
![スクリーンショット 2023-11-22 0.27.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27192/076f0389-c60f-dd54-9425-b7e4b8d5b4dd.png)

![スクリーンショット 2023-11-22 0.27.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27192/b80b1cce-784c-1b14-9c1c-2390dfd8f5b4.png)

![スクリーンショット 2023-11-22 0.27.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27192/c23f8fcc-249e-2d7f-206f-4449d124f17c.png)

これも1000,500,100,10円それぞれの分を作成しました。


### GASの修正

https://qiita.com/cog1t0/items/8f404f7c299fccbeb821

この記事で作ったGASのほうにも少し修正が必要です
といってもすごく単純な修正で、
- postされた中身にeventsが含まれていればLINEBotの処理、そうでなければNFCタグによる更新というIF文を追加
- NFCタグによる更新の場合、json.chargeの内容を引数にinsertCharge関数を実行

これだけです！

```js
function doPost(e) {
  //JSONをパースする
  json = JSON.parse(e.postData.contents);

  if(!json.events){
    // 更新処理
    if(json.charge){
      insertCharge(json.charge)
    }
  } else {
    //返信するためのトークン取得
    reply_token= json.events[0].replyToken;
    if (typeof reply_token === 'undefined') {
      return;
    }
  }
~~~~ 以降省略 ~~~
```

# 完成してみて
## おこづかいをあげてる感がすごいある
「お手伝いが終わったら、あの板を持ってきておこづかいを記録する」というのは、LINEBotでやるよりも、たしかな「おこづかいをあげている感覚」がありました。
娘も「おこづかいをもらっている感覚」をきちんと感じれているようでした。

## 準備が手間だが悪用されにくい
この仕組みをママのスマホに設定するのは、またママのスマホで、ショートカットを4種作ってオートメーションを4種作って、、、と面倒ですが、逆に言うと、「NFCタグ」と「設定したスマホ」がないと使えないので、悪戯や誤操作をされにくく、これはこれで便利だなと思いました

## NFCタグは電池もいらない
今回初めてNFCタグを使ってつくってみましたが、めちゃくちゃおうちハックの可能性を感じています。
電池はいらないし、今回のようにスマホの設定さえしちゃえば、段ボールがある意味IoTになっちゃうのは、めちゃくちゃ応用の効く技術だなぁと感心しました。

## ぜひいろいろ試してみてください！
最後までお読みいただきありがとうございました！
ぜひ試してみてください！