LINE

【2018年 LINE Bot 作り方】GASで支出管理Botを作ってみた


フリーランスエンジニアのyoshikiです。
 
 
最近、お金を使い過ぎてしまうことが多いので、1ヶ月の支出をざっくりと把握したいな〜と思いまして。
 
 
身近なLINEを使って、記録するためのBotを作ります!

作ったもの

作ったLINE Botアカウントは「ししゅつさん」。支出項目と金額を入力すると、Googleのスプレッドシートに記録されます。
 
 
使い方は単純で「食費 2000」と入力すると、

スプレッドシートの投稿日付(今日の日付)の箇所に、自動で入力してくれます。

 
今日の日付以外の記録をしたい場合、「日用品 1500 9/15」と入力すると、

指定した日付の箇所に入力してくれます。

 

作り方

ユーザーがメッセージ送信した際に、裏で動いているプログラムはGoogle Apps Script(GAS)を使用しています。
 
 
GASはGoogleが提供しているスクリプトで、Googleの各サービスにアクセスしたり、APIとして公開したりできます。例えば、Googleカレンダーにアクセスして、予定を確認して、空いている時間に予定を入れることができます。
 
 
このサービスはGoogleアカウントを持っているだけで無料で使うことができます。

 

1. GASでLINE Botを作るための準備

こちらの記事をご覧ください。


 

2. Messaging APIのアクセストークン発行

Messaging APIのアカウントページにあるアクセストークンの再発行を押します。発行されたトークンはコード記述時に使うのでコピーしておいてください。
 

 

3. スプレッドシート作成

Googleドライブにアクセスし、「新規」から「Googleスプレッドシート」をクリックします。

作成されたスプレッドシートに、支出項目と日付を追加します。こちらに→テンプレート用意しています。好きに入力してもらっても構いません。
 
 
 
GASでスプレッドシートを認識するために、IDをコピーしておきます。画像の青色に選択されている箇所をコード記述時に使うのでコピーしておいてください。
 

 

4. GASにコード記述

GASに以下のコードを記述します。
 
 
1行目〜3行目に事前にコピーしておいた内容を入力します。

ACCESS_TOKEN→2. Messaging APIで発行したアクセストークンを入力
id→3. スプレッドシート作成でコピーしたIDを入力
dateSheet→3. スプレッドシート作成で作成したスプレッドシートのシート名を入力

 

 

5. Webアプリケーションとして公開

コード記述が終わったら、使える状態にするために公開します。GASメニューの「公開」から「ウェブアプリケーションとして導入」をクリックします。

 
次の画面で「アプリケーションにアクセスできるユーザー」を「全員(匿名ユーザーを含む)」を選択して、更新をクリックします。

この時に表示されるURLをコピーしておき、Messaging APIのWebhook URLに貼り付けます。

 

6. 完成!

これで完成です!お疲れさまです!
 
 
LINEでメッセージ送信(食費 1000など)すると、「記録したよ!」と返信があり、スプレッドシートに金額が入力されているはずです。
 
 
もしうまく動かない場合は、コメントかTwitterのDMください!必ず返信いたします。
 
 
その他こんなLINE Botあったらいいなとかご相談などもお待ちしております。

関連記事

  1. Git

    Gitのコミットユーザー名を変更する方法

    GitでPushする前に、必ず確認しておいた方がいい内容です。&n…

  2. Android

    【Android Studio】よく出るエラーの解決方法まとめ

    どうも、フリーランスエンジニアのyoshikiです。&…

  3. Android

    kotlin スコープ関数の使い方

    applyapplyはローカル変数を書かずにオブジェク…

  4. Programming

    アプリ開発時に押さえておきたい2点

    ヒカラボさんで開催されたセミナー『いまさら聞けない…

  5. LINE

    【LINE Bot 作り方】GASでLINE Botを作るための準備

    LINE BUSINESS CENTER アカウントの作成2020/…

  6. Ionic

    【初心者向け】スマホアプリ(ハイブリッド / Ionic3)の環境構築

    どうも、フリーランスエンジニアのyoshikiです。&…

コメント

  1. アバター
    • きい
    • 2019年 2月 07日

    はじめまして。
    自分は今プログラマーを目指しているものでLINEのbotって面白そう!と
    このサイトを発見して思い、参考にしながら頑張っています。

    このページではなくて申し訳ないんですが、【誰でもできる!】自分用LINEBOTの作り方 の
    プログラムが全文公開されていなくて困っています。
    もしよろしければ見せてもらうことって可能ですか?

    よろしくお願いします。返信お待ちしています。

    • アバター
      • umedaman
      • 2019年 2月 07日

      コメントありがとうございます。
      プログラム公開されていませんでしたね。

      こちらご確認くださいm(_ _)m

      • アバター
        • きい
        • 2019年 2月 18日

        返信ありがとうございます!
        返すのがとても遅れてすみません!!

        リンクありがとうございます!
        頑張ります!!

  2. アバター
    • Yo_4040
    • 2019年 5月 19日

    BOTをあるサイトを見て作りました。
    喋ったことAに対してAッス!って返してくれるBOTをGASを使って作りました。
    Aッス!をAだに変えようとしたのですか、GASで’ッス!’→’だ’にしてもッス!のままです。
    変更を反映させる方法を教えて下さい。
    時間によって反映するものなのでしょうか?

  3. アバター
    • Yo_4040
    • 2019年 5月 19日

    GASを編集してから、どのくらいで反映されますか?
    反映させる方法でもあるのでしょうか?
    30分以上待っていますが、返信されません!
    なにがいけないのでしょうか?

    • アバター
      • umedaman
      • 2019年 7月 29日

      プログラムの公開が正しくできていない可能性があります。

      「公開」→「ウェブ アプリケーションとして導入」→「ウェブアプリケーションを無効にする」をクリックした後、

      > 3.プログラムの公開
      の手順を再度行ってください。

      その後、LINE DeveloperのWebhook URLも更新してください。

  4. アバター
    • シバ
    • 2020年 4月 02日

    上記のソースにて
    line 10
    >global.doPost = function (e) {
    箇所で、ReferenceError: global is not defined(行 10、ファイル「コード」)
    となりますが、global の定義はどこですれば宜しいでしょうか?

    • アバター
      • yoshiki
      • 2020年 4月 16日

      こちらのコードが抜けていました。
      先頭に追加して、試してみてください。

  5. アバター
    • りく
    • 2020年 6月 29日

    初めまして、コメント失礼します。
    上記のコードをそのままコピペして保存しようとすると
    SyntaxError: Unexpected token ‘var’
    というエラーが出てきました。対処法を教えてください。

    • アバター
      • yoshiki
      • 2020年 6月 29日

      コードを更新しました。
      再度、すべてコピーして試していただけますか?

      • アバター
        • りく
        • 2020年 6月 29日

        再度試してみましたが今度は
        SyntaxError: Unexpected token ‘;’
        となりました

        • アバター
          • りく
          • 2020年 6月 29日

          追記
          36行目の ; です

  1. この記事へのトラックバックはありません。

  1. Java

    Javaオブジェクト⇔JSONの変換はGSONを使おう
  2. エンジニア

    【現役エンジニアが解説!】システムエンジニアって何?
  3. エンジニア

    円満な退職の仕方
  4. Ionic

    【初心者向け】スマホアプリ(ハイブリッド / Ionic3)の環境構築
  5. エンジニア

    サラリーマンエンジニアは一回個人で仕事を受けてみるべき
PAGE TOP