家族の年齢を即座に言えますか?
私は親の年齢すら毎回計算しています。
はじめまして。小売業に勤めて13年目のujapaです。
生まれて初めて LINE Bot や Make に触れてから早2日。
何か作ってみたいと思ってチャレンジしてみたのがこの課題です。
背景としては
- 家族の誕生日だけは覚えている(カレンダーが教えてくれる)
- おめでとうメッセージだけはLINEする
- 「で、何歳になったん?」
私の家族関係があっさりしているとか、記憶力が低下しているとか、そういう本質的課題には今回は向き合いません。
なぜ LINE Bot なのか?
その時、LINEを起動しているからです。
私が家族の年齢を知りたいのは、誕生日メッセージを考えるときや冠婚葬祭の連絡をもらっときなのでLINEを開いていることが多いです。
Googleスプレッドシートやメモアプリを利用して管理することもできますが、
- アプリ起動
- 検索画面起動
- 検索ワード入力
の動作をスマホの小さな画面で実施するのは億劫です。
そんな理由から、LINE Botがぴったりフィットしたテーマだと思いました。
それに、LINE Bot しか触ったことがありませんし。
できたもの(画像)
Googleスプレッドシートで家族の年齢リストを作り、Makeでつないで LINE Bot を作成しました。
こんな感じです。動いてるところは記事最下段につけておきます。
「しし」というのは祖父の苗字と名前の頭文字です。
偶然、我が家はこの表記法でも誰一人被らなかったので漢字変換も省略。
記事化の都合もありますけどね。個人情報なので。
3メッセージ目のトリビアは Web API からもらってきて翻訳したものです。
STEP1 年齢リストの準備
まず何よりも家族の年齢情報の一覧が必要です。
今回は以下のような感じで曜日と干支も追加。※名前は略称です。
生年月日表記はYYYY-MM-DD
にするとうまくいくようです。
年齢の計算は「生年月日から今日までの満年数」として=DATEDIF(B2,TODAY(),"Y")
で計算。
干支の計算は mod 12 (12で割った余り)を使って=CHOOSE(MOD(YEAR(B2)-4,12)+1,"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥")
で計算できました。MODに+1を入れているのは、余りは0~11なのを1~12(番目)に変換するため。
ここで気になったのはtoday
関数がいつ計算を更新しているのかということ。調べてみるとデフォルトではどうやら Make が連携しにいくだけでは再計算されないらしい。
ということで再計算の設定を「変更時と毎時」に変更。
STEP2 MakeでLINEとGoogleスプレッドシートを接続
Googleスプレッドシートの年齢リストができてしまえばGoogle Sheets
の Serch Rows
のモジュールとつなぐことは直感的な作業で実施できました。
ご参考までに各モジュールの設定を載せておきます。
ここまで設定すれば、結果は以下のように出てきます。
STEP3 起点は技術ではなく……とはいっても
とある講習の初日で習ったことがあります。
「テクノロジーは課題を解決する道具です。だからこそ、起点は技術ではなく、自分の生活や関心・趣味・体験の中にある課題です」と。
とはいっても、せっかくならWeb APIとかつないでみる練習もしたいですよね?
年齢を返すbotなので、その数にまつわるトリビアでもないかとググったら、ありました。
ということで本来の目的からすればいわゆる蛇足ですが、以下のようなシナリオを作成。
当初、翻訳のための DeepL
は挟んでおらず、以下のような感じでした。
これでいいかと思っていたのですが、妻に見てもらったところ、「絶対翻訳すべき」とのフィードバックをいただきました。
たしかに、パッと見ると何かのエラーかと思って不安になりますよね。
MakeにはDeepL
のモジュールがあり、さらに無料枠のAPIもありそうでしたのでアカウント登録してAPIキーをゲット。ここで本人確認のためにクレジットカードの登録がありましたが、「有料版にアップグレードしないと引き落とさない」という文言をひとまず信じました。APIで取得するトリビアの短文を日本語訳するだけなので無料枠でいいのではないでしょうか。
各モジュールは以下のようになっています。
Numbers APIはURLに年齢やタイプを指定する文字列が入りますので、URLでGoogleスプレッドシートから取得した年齢を代入できるようにするのがポイントです。
数字によっては複数のトリビアが登録されていて、ランダムに出現するようです。
できたもの(動画)
みなさまは家族の年齢を即座に言えますか?私は親すら毎回計算しています。なので家族の名前(の略称)を送信すると年齢を教えてくれるbotを作ってみました。#withmake #linebot #linedc pic.twitter.com/4iUyWq1Pye
— ujapa (@ujapa2025) June 29, 2025
これで、家族の生年月日のメモを確認したり、スマホの小さい画面でスプレッドシートを開く必要がなくなりました。
脱線しますが、Xの投稿の埋め込みリンクを作成すると青い鳥が現れるんですね!
没シナリオと感想
Make を開いたのが本日で2日目でしたが、何とか1つ動かせたのは嬉しかったです。そして何よりまずLINEやMakeが凄すぎて愕然としました。
また、制作過程での気づきとしては、Reply Token
は1回しか応答しないということです。
一番最初に思いついたのは下記のようなシナリオでした。
STEP2の基本シナリオの後続にトリビア部分をくっつけてみたものです。
しかし一番右端のLINEはSend a Reply Message
では動かず、Send a Push Message
で動きました。
「まぁ動けばいいか」と思いつつも調べてみたら、
-
Reply Token
は1回しか応答しないものである -
Send a Reply Message
で5つまでメッセージを返せる仕様になっている
ということがわかりました。であれば、Send a Reply Message
にメッセージを3つとも集約した方が正しそうです。そのため、現在はSTEP3に載せたシナリオへと整理しています。
何もわからなくても動くものが作れる便利さに驚きつつ、やっぱりちゃんと理解するための勉強もしないといけないのかなぁと感じたのが初 LINE Bot 作成の感想です。
ここまでお読みいただきありがとうございました。
Qiitaへの投稿も初めてでしたので、先輩方の記事を参考にさせていただきました。
今後ともよろしくお願いいたします!