美女が「励まして」「癒して」「優しく叱って」くれるLINE bot【励ますサン】を作った

~~エンジニアの勉強をしていても誰も褒めてくれないので、~~
美女がめっっっちゃ励ましてくれるLINE bot **【励ますサン】** を作って自給自足をはじめました。

思っていた以上に意外と、心温まります（笑）
![励ますサンGIF Qiita.gif](https://qiita-image-store.s3.amazonaws.com/0/145707/c6b0f44c-ca90-0e9a-e400-becd76dd44db.gif)


#####こちらから友達登録をお願いします！
https://line.me/R/ti/p/%40xqh0875w
![励ますサンQRコード.png](https://qiita-image-store.s3.amazonaws.com/0/145707/ee0a6c0f-468b-99e7-7fbb-809f571de4d1.png)

ぜひ使ってみた感想を
ハッシュタグ **「 #励ますサン 」**
でつぶやいて欲しいです！すぐエゴサします！

##こだわったところ
・iPhoneに送って、全ての文言を **１つ１つ手作業で見やすく改行**
・自分で送られて **テンションの上がらない文言は即修正**
・好きなYouTubeの動画とかも載せた。【すしらーめん《りく》】が好きです。
・ **美女画像を30通りくらい用意** して、一番テンション上がる画像にする
・ **衛藤美彩かわいい。好き。**

## 仕組み
LINEリッチメニューで
「励まして！」「疲れたよ〜」「愛をもって叱って！」「中の人について！」
の4つのコマンドを1タップで送れるようにしました。

次にそれぞれのコマンドに20通りずつ文言を用意しました。
ただ20通りの文言が配列に入っています。
雑コードですね。

そしてランダムで返す。
それだけのbotです。

**それだけですが、意外と良いです（迫真）**


## 作り方

参考にしたのは以下noteです。
[プログラミング初心者でも無料で簡単にLINE BOTが作れるチュートリアル](https://note.mu/tatsuaki_w/n/nfed622429f4a)

google driveでGoogleSpreadSheetを使ってbotを作ります。
無料部分でも自分の言った文言をそのまま返す「おうむ返しbot」が作れます。


それをほんの少し改造していきます。

##LINEリッチメニューの導入
LINE@MANAGERでリッチコンテンツ作成 > 新規作成
でリッチメニューの作成に入ります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/145707/0cc1210d-8d11-097f-ff52-c5b3fdce659f.png)

###リッチメニューの設定

- 表示設定「反映する」
- 表示期間「昨日 ~ 2026年まで」（ここは適当です）
- トークルームメニュー「なにしてほしい？」（メニューを表示するボタンの文言）
- テンプレート選択「テキスト＋アイコンで作成」

####リッチメニューの設定（コンテンツ設定）
- ラベル「励まして！」（LINEメニュー上に表示されるテキスト）
- リンク 「テキスト」「励まして！」（ **ボタンを押した時に送られるテキスト** ）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/145707/d4eb80b2-55cb-bd37-f190-01de8e77c83a.png)

###雑なソースコード

```javascript
function doGet() {
  return ContentService.createTextOutput("success");
}

function doPost(e) {
 var webhookData = JSON.parse(e.postData.contents).events[0];
 var message,replyToken;
 //送られてきた文言が変数messageに入る。（ボタンを押した時のテキスト）
 message = webhookData.message.text;
 replyToken = webhookData.replyToken;
 appendToSheet(String(message));
 return sendLineMessageFromReplyToken(replyToken,message);
}


var spreadsheet = SpreadsheetApp.openById("スプレッドシートのID");
function appendToSheet(text){
 var sheet = spreadsheet.getSheetByName('webhook');
 sheet.appendRow([text]);
}


var channel_access_token = "アクセストークン";

function sendLineMessageFromReplyToken(token,message){
 var url = "https://api.line.me/v2/bot/message/reply";
  if (message == "励まして！") {
    var replyWords = ["いつも大変だよね。わかるよ。\n\nでもあなたならできる。\n大丈夫だって信じてる！",
                      "うまくいかないときって本当にきついよね。\n\nでも！私がついてる！\n大丈夫！！！",
                      "はじめから出来る人なんていない。\nみんな一歩ずつうまくなっていくんだよ。\n\n大丈夫。\nがんばろ！！！",
                      "頑張りすぎちゃってない？\n思いきって休むってことも大事だよ！",
                      "進まない時ってあると思う。\nでも、あなたなら大丈夫！\n\n進んでないように見えても、\n実はちょっとずつ進んでるんだよ！",
                      "短距離走じゃなくて、\n長距離走！\n\nゆるく頑張ろうーー♩",
                      "疲れた時は休憩も大事だよー！\nこれでも見て笑ったらどうかなー？\n\nhttps://www.youtube.com/watch?v=jIo19srsg08",
                      "お疲れ様！\n頑張ってていつもエライよ！\n私の好きな音楽でも聴いてちょっとだけ休憩する？？ \n\nhttps://www.youtube.com/watch?v=2cdUL3jixGY",
                      "プログラミング難しいよねぇ。\nすごいなーーと思う！",
                      "周りのすごい人を見てると\nこんなんじゃダメだなって思うかもしれないけど\n1ヶ月前の自分と比べて進歩してるって思わない？",
                      "しんどい時って寝不足かも！\n\n寝不足だとなにもうまくいかなくなっちゃう。\n\n上手くいかないのもそのせいかもね",
                      "詰まった時きついけど、\n切り替えよう！\n\n散歩したりお昼寝したり、\n一瞬忘れて戻ってくるとうまくいったりするよ！",
                      "頑張れっ！！！\n私はいつでも応援してるぞ！！！\n\nてかbotだから、\n話しかけてもらえないと\nヒマなのっ！！！",
                      "頑張ってるね！\nえらいとおもうよ！\n\n何かに挑戦する姿って、\n自分では分からないかもだけど\nすごくかっこいいよ！！！",
                      "私は寝不足でお腹が空いてるときにネガティブになるんだよね。\nあなたは何か疲れちゃうことがあったりしない？",
                      "できない理由なんて幾らでも見つかるけど、\nそんな中で勉強をするって決めたあなたはエライと思う！\n\nお疲れ様！\n大変だけど頑張ろう！",
                      "今の時代の安定って、\n「いつでも仕事が見つかる」\nってことだと思うんだよね。\n\nプログラミングってその点最高だと思うなぁ",
                      "「難しいことは知らんけど！自分はできる！！」\nって信じて\nどんどん挑戦すればいいと思う！\n\n少なくとも、\n挑戦する人はめっちゃかっこいいよ！",
                      "何かを成し遂げた華々しい「瞬間」は\nそれまでの地道な努力の先にあるものだよね。\n\n一緒に積み上げていこう！",
                      "自分1人でやってて辛くなった時は、\n・休憩する\n・美味しいものを食べる\n・仲間を探す\nとかがいいと思うなぁ。\n\nLINE botの作り方なら私の作者に聞いてみればいいと思うよ！",
                      "周りに、\n今やってることを理解してくれる人がいないとしたら\ntwitterとかで探した方が良いよ！\n\n1人で頑張り続けられる人なんていないんだから！"
                     ];
  }
  else if (message == "疲れたよ〜") {
    var replyWords = ["いつも頑張ってて本当にエライと思う！\nそんなあなたを尊敬するよ！",
                      "お疲れ様〜\n疲れた時は20分くらい\nお昼寝すると良いと思うなぁ。",
                      "おつかれっ！頑張ってる！エライ！",
                      "私は寝不足でお腹が空いてるときに疲れを感じてネガティブになるんだよね。\n\nあなたは何か疲れちゃうタイミングがあったりしない？",
                      "新しいことやるって\n疲れるよねぇ\nお疲れさまーー",
                      "疲れた時は思いっきり\n「疲れたぁ〜〜〜っ」\nって言えば良いと思う！\n\n素直に感情出していこう！",
                      "お疲れ様！\n\n周りにあるものでコントロールできるものなんて\nほんの少ししかないんだから。\nゆるり考えれば良いと思うよ！",
                      "おつかれ〜\n\n疲れた時は\n美味しいもの食べよー！\n\n私は焼肉が大好きです！\nおにくっ♩",
                      "おつかれさま！！！\nつかれたら、\nよく食べて、\nよく寝よう！\n\n遊んだり\n頑張るのはそのあとあと！",
                      "お疲れ！\n\n「休息とは回復であり、\nなにもしないことではない。」\n\nらしいよ！\n\nどこかのエライ人が言ってた！\n誰かは忘れた！\n\nよく休もう！",
                      "おつかれ〜〜〜！！！\n今日も一日偉かった！\n今日も一日すごかった！\n今日も一日頑張った！\n\nゆっくり休憩しよ！",
                      "おつかれん♩\n人生山あり、谷あり。\n\nどこかの山に登ろうとしてる時って\nずっと上り坂だから大変だよね。",
                      "おつかれさま！\n\n頑張った自分を甘やかしてあげよ！\n\n私のおすすめはコンビニで買える金のミルクです。",
                      "おつかれ！\nつかれた時は趣味に没頭するといいらしいよ？\n\nえっ、趣味がない？\nそんな人は、、、\n\nたくさん寝ればいいんじゃないかな！！",
                      "「もうだめだ。。。」\nってなってる？\nもしそうなら肩の力を抜きなよ？\n\n頑張るのはいいことかもしれないけど、\nメンタル辛くなるまで頑張るのはいいことじゃないからね！！！",
                      "わたしもね。。\n\n日々みんなを励ますのにね、、、\n疲れたりするんだよ。。。。\n\n\nでも頑張ってるの！\n\n\n\nあなたもわたしも\nめっちゃおつかれさま！！！！"
                     ];
  }
  else if (message == "愛をもって叱って！") {
    var replyWords = ["挫けそうなときもあるよね。\nでも、今すごい人でも努力してすごくなってるんだよ！\n\nあなたは今のままでいいの？\nそれとも変わりたいの？\nどっちかよく考えよ！",
                      "progate作った人たちも、\n数年前まで\nプログラミング出来ない人だったみたいだよ。\n\n創れる人になりたいよね？\n違うの？",
                      "私の友達、\nプログラミングでフリーランスになったら\n給料2.2倍になったって！\n\nあなたならできるよ！\n頑張ろう！",
                      "現時点で\nすごく才能がある人、能力がある人。\nその人たちも今、頑張ってる。\n\nあなたも頑張ろう！",
                      "たまに思うんだよね。\n自分は平凡だなって。\n\nところでそんな平凡な私よ。\nいつまでも下を向いている暇はあるのか？\n\nって思うようにしてる。\n\n\nえ、漫画のセリフだって？\nバレた・・・？",
                      "大切なのはプログラミングを使ってなにをしたいのか。\n\nたとえ1万円札を持っていても、買いたいものがなければ意味がないでしょ？",
                      "わたしに話しかけてくれるのは嬉しいよ！\nそのあとすぐに勉強に戻ったらなおよし！\n\nでもどうせtwitterとかしてるんでしょ？？\n\nSNSやりすぎて時間無くさないようにね！",
                      "失敗したって\nだいたいは問題ない。\nなのにみんな失敗しようとしない。\n\nあなたは最近失敗してる？\n安全なところで\n安全なことしかしてないとかないよね？",
                      "変に人脈つくりとかしてないよね？\n\nあなたが繋がれるのは\nあなたと似たようなレベルの人なんだから。\n\nまずは、\n自分をレベルアップさせることが最初！",
                      "\n\n\n\n\nだいすきっっ！！！！\n\n\n\n\n\nあっ！間違えた！\n叱るんだった！！\n\n\n.......コラッ！",
                      "やらない後悔よりやって後悔\nってよく言うよね。\n\nあの時あの人に、あれを言えばよかったと、\n何回思ったことか。。。\n\n\nあなたはやりたいことやらなきゃダメだよ！",
                      "目標があるならそれをtwitterで言っちゃえば？\n\n宣言したらプレッシャーかかってやるようになるよ！！\n\n呟く時は\n＃励ますサン\nって付けてね！\n\nすぐ中の人がいいねするよ！",
                      "「そこまでやる！？」\nってとこまでやろう。\n\nそこまでいけば結果はついてくるし、\nたとえ今ダメでも後に何かに繋がってくるよ！",
                      "出来るか出来ないかじゃない。\nやりたいかやりたくないか。\n\nやりたいことをやっているうちに、\n出来なかったことまで出来るようになる！",
                      "口だけじゃなくて行動する人がえらい。\n\n行動する人間は目立つから\n何か言われたりするけれど、\nそんな暇人のことは放っておこう。\n\nあなたはあなたのやるべきことをすれば良い。"
                     ];
  }
  else if (message == "中の人について！") {
    var replyWords = ["sasakure.UKっていう人の音楽が本当に好き。\nもともとニコニコから有名になった人なんだけど、本当にいい音楽だからぜひ！\n\nhttps://www.youtube.com/watch?v=gOrzlgiPkbc",
                      "最近kindleを買って、すごく本を読むようになりました。\n\nこれは姉ものの漫画ですがおすすめです。。\n\nhttps://amzn.to/2PeAGEF",
                      "このLINEの写真は衛藤美彩っていう乃木坂の人です！\n\nめっちゃ美人だよね。\n写真集買ったら、\n彼女に速攻見つかった。。。\n\nhttps://amzn.to/2wsLYgx",
                      "好きな食べ物は焼肉とフォアグラハンバーグです。\n俺のフレンチのハンバーグめっちゃ美味しい。",
                      "わたしを作った人はこの人だよ。\nカンボジアでカレー屋やってた日本人\nとかいう意味わからないやつだから\nぜひフォローしてあげて！\n\nDMとかも全部返すって！\n\nhttps://twitter.com/ko_chan214",
                      "中の人、生涯で2回女装したことがあるらしいよ。\n高校の時にメイド服、\n社会人になってからガチのドレス。\n\nこんな人でも生きてるんだからあなたも強く生きて。",
                      "衛藤 美彩（えとう みさ、1993年1月4日 - ）は、日本のアイドル、ファッションモデルであり、女性アイドルグループ乃木坂46のメンバー、『美人百花』のレギュラーモデルである。大分県大分市出身。身長163cm。血液型AB型。\n\nhttps://ja.wikipedia.org/wiki/%E8%A1%9B%E8%97%A4%E7%BE%8E%E5%BD%A9",
                      "この写真の衛藤美彩さん、1993年1月4日生まれなんだけど、中の人と1ヶ月くらいしか違わない。\n\nちなみに身長は163cmらしい。\nこれも中の人とほとんど変わらない（泣）\n\nそんな中の人はこちら。\n@ko_chan214",
                      "自分のいつも使う机の周りだけは\nすっごく綺麗に整えられているタイプです。",
                      "newspicks booksどれも好きです。\n特に「ブランド人になれ！」が好きです。\n\nhttps://amzn.to/2odPuHQ",
                      "趣味はジャズピアノ。\n高校の時に全校生徒の前で弾いたり、\nジャズバーで弾いたりしていました。\n\nちなみにモテると思って始めた\nジャズピアノは\n特にモテません。",
                      "最近、台湾に旅行に行ってきました。\nもしあなたが最近台湾に行った、\nもしくは台湾が好きならtwitterで絡みましょう\n\nhttps://twitter.com/ko_chan214/following?lang=ja",
                      "開発にはMacbookを使ってます。\nAppleの製品まじかっこいい。\nてかApple就職したい。",
                      "エアリズムが好きです。\n下着のはずですが、Tシャツとして着ています。\n\nこれを開発した人と結婚したい。\nいや、ユニクロと結婚したい",
                      "好きな街は\n「谷中銀座」と「蔵前」です。\nどちらも職人の街として有名で、\n手作業で何か作っている人がたくさんいるおしゃれな街です。\n\n特に蔵前の「カキモリ」さんはおすすめ。\nオリジナルノートを作れます。",
                      "最近感動したデートスポットは「チームラボ プラネット」です。\n\n「おお！そうくるか！」\nみたいな意外性がある場所が好きなのですが、\nここは意外性のデパートでした。\n\n考えた人は狂ってる（褒め言葉）",
                      "犬派か猫派か？？\n聞くまでもなく猫派ですね。\n\n猫になりたい",
                      "コツコツ派か、短期集中型か。\n短期集中型です。\n\nこのLINE-botも勉強してから24時間以内に作りました。\n\nでも最近継続のコツコツに憧れます。"
                     ];
  }
  else {
   var replyWords = ["私はあなたを応援してるよ！"]
  }
  
  var randomNumber = Math.floor( Math.random() * replyWords.length );
  appendToSheet(randomNumber);
    
 var headers = {
   "Content-Type" : "application/json; charset=UTF-8",
   "Authorization" : "Bearer " + channel_access_token
 };
 var postData = {
   "replyToken" : token,
   "messages" : [{
     "type" : "text",
     "text" : replyWords[randomNumber]
   }]
 };
 var options = {
   "method" : "POST",
   "headers" : headers,
   "payload" : JSON.stringify(postData)
 };
 return UrlFetchApp.fetch(url, options);  
}
```