※本記事はLINE DC Advent Calendar 2021 11日目の記事になります。
初めに
関西大学に通う学部1回のキンジョウです!
久しぶりにMessagingAPIを使った開発をしたので、少しでも昔よりも成長したらいいかなと思います!
作成のきっかけ
何を開発しようと考えていたとき、お正月も近いし、おみくじなんてどうだろ?と思い、それだけなら自分でも作れそう??と思いまいした。
さらにただおみくじだと面白くないので、せっかくなら小学校のころにはまったポケモンでも取り入れたら面白そうと思ったのが、きっかけです。
機能としては、簡単なので実稼働時間は20時間ぐらいで開発しました!
成果物
趣味開発done
— キンジョウ/金城翔太郎 (@kinjyo1130) December 12, 2021
やはりおみくじはいい
Pokémonとか好奇心刺激しまくり pic.twitter.com/th7yqv9Se7
使った技術
なぜこの技術を使ったのか?
・自分が使い慣れている
・スプレッドシートがデータベースとして、容易に使用できる
・環境構築がいらないから、すぐに開発に入れる
などの理由です!
次は、AWSとかを使って開発をしてみたいです!
はまったポイント
おみくじの機能は、2時間ぐらいでできたのですが、1日1回だけおみくじを引かせると言う点で少しハマりました。
具体的には、まずどのように、『時間経過を判定するのか』と『フローをしては、どのようにしたらいいだろう?』と言う点でした。(ほぼ全部ですが笑)
まず、『時間経過を判定するのか』
・ローカル変数で、値を保持しよう -> 六時間が限界 NG
・MessageAPIで特定のトーク履歴の情報のAPIあるかな? -> そんなのはなかった NG
・一人一人のUserIDに紐付けて管理する -> スプレッドシートで管理する OK
『フローをしては、どのようにしたらいいだろう?』
・地道にまずは、手を動かすところだなと思い、手書きで自分が思うフローを書き上げました。
こんな感じでやってました!見にくくてすいません!
自分の頭で考えてることは、一度すべて書き起こすと思考が整理されて、とても思ってることに近づいてる感じがしました。
もっと具体的な流れとしては、
day.jsを読み込んで、
//現在の時間.diff(前回の時間,'day') >= 1
current_time.diff(last_time, 'day') >= 1
上記のコードで、1日経過していたら、bool値を返します。
あとは、UserIdがスプレッドシートにあるかどうかを判定して、あれば時間経過を判定して、なければUserIdを登録して、時間も記入をしていく感じです!
まとめ
友達追加をする
こちらから登録して、使ってみてください!
もし、バグなどがあれば、コメント等で受け付けます!
ここが知りたいやわかりにくいなどもあれば、どんどん追記していきますので、お知らせください!
ぜひ、良いお正月を!!!