4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

はじめての記事投稿

トレーニングLINE Botで憧れの体型に?!初めてのLINE Bot作成🌟

Last updated at Posted at 2023-07-05

LINE Botって便利ですよね!
再配達の依頼ができたり、お得な情報が配信されたり、おしゃべりできたり。
この記事は、プログラミングを学んだことの無い素人が1週間+αでLINEbot作りに奔走した記録です。
現時点でどこまで作れたかをお知らせします!

1週間でできたLINE Botがこちら

このLINE Botでは、日付を送るとあらかじめ作っておいたスプレッドシートを、呼び出して、その日に計画されているトレーニング内容を教えてくれるというものです。
なんとなく形になりました!!!とりあえず嬉しいです!!!

さらに4日経って修正したLINE Botがこちら

課題を修正して何とか理想の形にできました!
1. 日付を入力するとその日のトレーニング予定を教えてくれる(初期でクリア)
2. 日付以外を入力するとランダムでYES・NOを返してくる(初期課題1)⇒修正後クリア
3. 決まった時間にリマインドしてくれる(初期課題2)⇒修正後クリア

初期のシナリオと修正後のシナリオについて下記に記します。

なぜLINE Botのテーマをトレーニングのリマインドにしたのか

リマインド系のBotであれば、業務のシフトなどを最初に思いましたが、
私に今必要なのは何か、を考えた結果、運動の習慣でした…
コロナ禍では在宅勤務や出張控えが多くなり、外出する機会が減り、大きく成長しました。
さらに、コロナが落ち着いてきた今、外食する機会が増え、さらに大きく成長しました。
いつも運動しないと!と思っていても忘れてしまう…それを毎日使うLINEでリマインドされれば一度決意した計画を実行することができるのでは?!という思いの元、作成することにしました。

やりたかったこと

私が今回のLINE Botを作成する上でやりたかったことは次の3点です。
1. 日付を入力するとその日のトレーニング予定を教えてくれる
2. 日付以外(弱音など)を入力するとランダムでYES・NOを返してくる
3. 決まった時間にリマインドしてくれる

結果、1週間でちゃんと実現できたのは1のみでした。
2はエラーが続き、実装できず、
3は1週間ではやり方がわからず…

やりたかった2のイメージ

「やりたくないな…」とか「ケーキ食べたいな」とかを送ると、ランダムで「YES」か「NO」が返ってくる仕組みを入れる予定でした…が、
現時点で、なぜかエラーは出ずに、LINEに返事が来ないという悲しい現象が起きている状態です。
連結しなかったらできているのであと一歩でしょうか😥
2と3については今後の課題としました!

無事、解決しました!
 ⇒「初期のシナリオ」と「修正後のシナリオ」にて解決方法を記します!

初期のシナリオ

(※分岐した下側の「YesNo」の部分は前述したように、なぜが動きません。)

こちらの記事を参考に作成しました。
88Eqvさんの記事
勤怠リマインドしてほしい!文系初心者のノーコードLINEbot作成録(Make)

使ったもの

あらかじめトレーニング予定を入力したGoogleスプレッドシートをSSSAPIでAPI化し、それを連携する流れです。

初期モジュールの中身

トレーニング予定初期.png

スプレッドシートに入っていない文言(日付)を入力した場合は図のように分岐する作りです。
YESNO初期.png

しかし、こちらのシナリオでは下の分岐の内容がLINEに反映されず、エラー表示も出ないため、私の知識では原因を見つけることができませんでした。

そこで、
rbmktstさんの記事
お酒の種類をつぶやくだけで、適量を教えてくれるLINE Botを作ってみた
を参考に、再度シナリオを作り直してみることにしました。

修正後のシナリオ

修正後に使ったもの

SSSAPIを使用するのをやめて、直接Googleスプレッドシートのモジュールで連携することにしてみました。

修正後のモジュールの中身

トレーニング予定のシナリオ.png

分岐は修正前と全く同じ内容で作成しました。
YESNOのシナリオ.png

これでエラーなく、「やりたかったこと」の
1:日付を入力するとその日のトレーニング予定を教えてくれる(初期でクリア)
3:決まった時間にリマインドしてくれる(初期課題2)⇒修正後クリア
がクリアできました。

このシナリオで成功できたので、
初期シナリオのエラーについて、問題だったのはSSSAPIとの連携の部分だったのかもしれません。

決まった時間にメッセージを送る

残すところは
2:決まった時間にリマインドしてくれる(初期課題1)です。

上記とは別のシナリオを作成することにしました。

スケジュール設定のシナリオ

リマインドのモジュール.png
一つだけです。
ただ、前述のメインのシナリオとは違い、使用しているモジュールは
「Send a Push Message」 です。

スケジュール設定のモジュールの中身

スケジュール設定1.png
・時計のマークを押して、どのくらいの頻度で、いつメッセージを送るか設定します。
・「to」の部分にLINEのアカウントIDを入力しメッセージの送信先を設定します。
・送りたいメッセージの文言を、textの部分に入力します。

これで完了です!一番簡単でした。

ちなみに、メッセージの送信予定は、モジュールの時計のマークからではなく、シナリオの設定画面からでも設定することができました。
スケジュール設定2.png

全体を通しての作成手順

主な作成方法は、真似をするです。
Qiitaでいろんな先人の記事を読み漁り、使えそうな方法を真似させていただきました!
ありがとうございます!
今回の制作の中で一番大事なポイントと言っても過言ではありません。

大まかな流れとしては、
1. LINEdeveloperで公式LINEを作成する
2. フリーで使えそうなAPIを探す
3. Makeというモジュールで感覚的にプログラミング的な作業が出来るツールをLINEに連携してbotを動かす
4. 自分のやりたいことと似ている記事をQiitaで探す

といった感じです。

イメージしていたプログラミングは、真っ黒な背景に英数字の羅列、と思っていましたが、こんなにかわいくできるとは思っていませんでした。
動かすのもぼよんぼよんってしててかわいいので、初心者でも苦手意識が軽減されました!

見てわかるように、たったこれだけ。簡単です。
いや、簡単ですが、全然簡単じゃなった・・・。
プログラミングが全く分からなくても、なんとなくできてしまうのが素晴らしい!!!
なんですが、エラーの連続…

よく起きたエラー原因

・APIアドレスを貼り間違えている
・最初のLINEモジュールと最後のモジュールのコネクション先が間違えている
・JSONではなくXML形式だった
などなどでした。原因を探すのに本当に時間がかかりました…。:cold_sweat:
ぜひ、この記事で興味がわいた方は、ぜひたくさんの方の記事も参考にしてみてください!
エラーにぶつかっても、きっと同じようなエラーを解決した人がいるはずです。

作成してみて

なんとか目標としていた課題をクリアすることができました。

最初の作成の時点でずっとエラーで躓いていましたが、別の方法に転換することによって解決することができました。たくさんの方の事例を見ることによって、他の方法や同じようなエラーの解決策を見つけることができ、情報を集めることの重要性を学びました。

リマインド機能についてはメッセージだけでなく、その日のトレーニング内容を送ってくれる仕組みの方が便利なので、引き続きやり方を模索しようと思います。

また今回のLINE BotをきっかけとしていろんなAPIを試してみたいと思います!

  • 2023/07/09
    • 「修正後」について部分を大幅に追記しました。
    • Markdown記法を修正しました。

余談

途中、テーマを決定する前にいろんなAPIを触りまくり、トライ&エラーを繰り返しまくった結果、Makeから有料プランをおすすめするお知らせが来ていました。
MAKEの無料プランは月1000回までのようなので実行しすぎに気を付けてください笑

4
1
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?