LINE　BOTからGoogleSpreadsheetを編集する

##LINE　BOT からGoogleSpreadsheetを編集して家計簿をつけたい！

前々から、すべてを家計簿つけたりは面倒くさいけれど、水道光熱費くらいまめにつけて
集計したいなあと思っていたので今回はLINE　BOTを使って簡単な家計簿を作りたいと思います。

##参考資料



[【資料１】LINEBOTで支出計算]
(http://yoshikii.com/entry/linebot-expense/)
[【資料２】３分で作る超簡単LINEチャットボット]
(https://qiita.com/K2_Fujita/items/db6db995847f727237ab)



##環境

Windows 10 



##概要
![S__2433032.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/508651/d5e63189-32b7-1a54-ff62-4415a04ca612.jpeg)

早速GoogleSpreadSheet をラインボットと繋ぎましょう。


##GoogleSpreadSheetを作成
①googleドライブ→新規作成→google
スプレッドシート
<img width="915" alt="2019-12-23_22h17_59.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/508651/0a65fbd3-a5ce-cef5-2175-1fc31d36f0c0.png">

②スプレッドシートのURLの青の部分をがシートIDになるのでコピー
<img width="916" alt="2019-12-23_22h21_56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/508651/7924720d-d9fd-2a03-e00b-b60320d21aaa.png">

③ツール→スクリプトエディタ→コード作成ページへ
<img width="918" alt="2019-12-23_22h24_57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/508651/f39170d5-ab19-7cba-ed89-a80ff59fb862.png">

##コード.gs

```コード.gs
//対象のスプレッドシートのID（対象のURLを開いてURLの「https://docs.google.com/spreadsheets/d/」以降から「/edit#gid=0」の間の文字列）

var SPREADSHEET_ID = '対象のスプレッドシートのID';
function doPost(e) {

  // ユーザーのメッセージを取得
  var userMessage = JSON.parse(e.postData.contents).events[0].message.text;
  //LINEメッセージを「改行」で分割
  var messageParameter = userMessage.split(/\r\n|\n/);

  //対象のスプレッドシートを取得
  var targetSs = SpreadsheetApp.openById(SPREADSHEET_ID);
  //対象のシート取得
  var targetSht = targetSs.getSheetByName('シート1');
  //最終行取得
  var lastRow = targetSht.getLastRow();
  //現在年月日取得
  var date = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy年MM月dd日');

  //各セルに書き込み
  //A列に記入年月日
  targetSht.getRange('A' + (lastRow + 1)).setValue(date);
  //B列に支出月（メッセージの１行目）
  targetSht.getRange('B' + (lastRow + 1)).setValue(messageParameter[0]);
  //C列に費目（メッセージの２行目）
  targetSht.getRange('C' + (lastRow + 1)).setValue(messageParameter[1]);
  //D列に費目（メッセージの3行目）
  targetSht.getRange('D' + (lastRow + 1)).setValue(messageParameter[2]);
  //E列に費目（メッセージの4行目）
  targetSht.getRange('E' + (lastRow + 1)).setValue(messageParameter[3]);
  
  
  return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
  }

```
##コードを貼り付け
１．先程のコードをはり付ける
scope=line&redirectUri=https%3A%2F%2Fdevelopers.line.biz%2Fconsole%2F%3Fstatus%3Dcancelled
<img width="944" alt="2019-12-23_22h42_18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/508651/2fde711a-62d8-0a15-1f52-b33e2bd4ae9d.png">
２．ファイル→保存
３．公開→ウェブアプリケーションとして導入
<img width="500" alt="2019-12-23_22h46_33.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/508651/f7bff793-44c6-d6f4-28ba-a00f41599aee.png">
　①は最初の更新では空白でOK
　②は常にnewにしておいた方が良い
　③は英語だけど、全ユーザー(匿名も公開)にしておく→更新

４．WebhookにはりつけるURLが完成。コピー
<img width="500" alt="2019-12-23_13h20_03.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/508651/5706f15e-6996-403b-d532-202ff389cf88.png">

５．Webhookにはりつける(編集→はりつけ→検証)
https://account.line.biz/login?


<img width="917" alt="2019-12-23_22h54_35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/508651/cdc1237b-cf3b-cf1b-decc-68d33d08b6f1.png">

６．成功がでたらOK
<img width="500" alt="2019-12-23_13h38_21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/508651/bb97c0ca-0872-fd0d-9da4-fd147991d844.png">

ここで200以外の応答～というようなエラーがでた場合は先程の３－③が全ユーザー匿名以外も受け付ける設定になっているか確認する。




##完成

<img width="916" alt="2019-12-23_22h21_56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/508651/397fcbb7-bea3-6c76-a073-1e4780991be5.png">



ラインボットからメッセージを送信


<img width="500"　alt="60109.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/508651/f71117c3-9c92-b175-a35f-0c06914f55fa.jpeg">


<img width="913" alt="2019-12-23_22h39_18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/508651/53278425-c40f-f320-bcff-7a751fdaf4ad.png">

ちゃんと記載されてます！！
簡単に最低限残しておきたい支出にとっては地味に便利なものになりました！！
ありがとうございました！！