Skip to content

YoshidaInasaku/gas-line-schedule-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

■gas-line-schedule-bot

Line上でスケジュール管理ができるツールです
カレンダーアプリの代わりになれるものを目指しました

仕組みは下記スライドの通りです


本ツールは Google Apps Script を用いて開発を行っているので、利用するためにはセットアップが必要です

■機能

主な機能は以下の5つです

  • スケジュール登録
  • スケジュール削除
  • スケジュール変更
  • スケジュール確認
  • リマインド機能

■デモ動画

操作したい内容をメッセージとして送信すると(登録なら「登録」と送信されると)、処理に進みます
その際、リッチメニューを作成しておくと便利です

1. 登録

メニューより「登録」をクリックすると、Googleカレンダーへの登録処理に進みます
登録したい日時とカレンダータイトルを入力すると、予定を登録することができます

register

2. 変更

メニューより「変更」をクリックすると、Googleカレンダーの予定変更処理に進みます
変更したい日時を指定後、変更したいイベントを選択し、変更内容を入力すると、予定を変更することができます

update

3 .削除

メニューより「削除」をクリックすると、予定の削除処理に進みます
削除したい日時を指定後、削除したいイベントを選択すると、グーグルカレンダーの予定を削除することができます

delete

4. 確認

メニューより「確認」をクリックすると、Googleカレンダーの予定確認処理に進みます
確認したい日付を入力すると、予定を確認することができます

show

また、Google Apps Script 上でトリガーを設定すると(設定方法は後述)、前日の11時ごろに次の日の日程を通知してくれます



■本ツールを使うメリット

  • スマホの容量がいっぱいでも、Lineさえあれば別途カレンダーアプリをインストールしなくて済む
  • 次の日の予定を前日にラインで通知してくれるので、予定を忘れなくても済む

■必要な環境

  • Googleアカウント を持っていること
  • Line Developers に登録済みであること
  • Docker Desktop がインストール済みであること

■セットアップ

必要な準備は大きく分けて以下の4つになります

1. 環境構築
2. Google Apps Script の設定
3. Messaging API の設定
4. .config.js の作成
5. 設定の反映

1. 環境構築

  1-1. 本リポジトリをフォーク
  1-2. ローカルににクローン
  1-3. ルートディレクトリ配下に以下2つのファイルを作成するため、ターミナルにて以下コードを記述
    Ⅰ) .clasprc.json
    Ⅱ) .clasp.json

  $touch .clasprc.json
  $touch .clasp.json

  1-4. ターミナルにて、Docker をデーモンとして起動して、bash に入る≤br />

 $docker compose up -d
 $docker compose exec app bash

  1-5. ターミナル上で clasp によるログインを行う

 $clasp login --no-localhost

  1-6. ターミナル上に URL が出力されるので、それをコピーして、ブラウザ(クローム)に貼り付け
      → ブラウザ上で 承認 が求められるので、「許可」を押す
  1-7. ブラウザ(クローム)にてコードが出力されるので、それをコピーしてターミナルにペースト
  1-8. .clasprc.jsonに、下記のように認証情報が記載されていることを確認する

 {"token":{"access_token":"以下略....."}}

2. Google Apps Scriptの設定

  2-1. Google Apps Script API の設定画面に行き、 Google Script API を オン にする
  2-2. 任意のGoogleドライプのディレクトリで、Google Apps Script を作成
  2-3. .clasp.json を記述する

  {
     "scriptId": "{Google Apps Script の プロジェクトID}",
     "rootDir": "./src"
  }

  2-4. ターミナルに以下のコマンドを入力

 $clasp push {Google Apps Script の URL(https://script.google.com/home/projects/{プロジェクトID}/edit 全文)}

  2-5. Google Apps Script の Webエディタ の画面に行き、コードが反映されているか確認する
  2-6. Google Apps Script の Webエディタ にて、トリガーを設定
    → 関数「remindSchedule」 を 「午後11時〜午後12時」 に設定
trigger

3. Messaging APIの設定

  3-1. Messaging API を使用するため、Line公式Docの説明を参考に、チャンネルを作成してください
  3-2. チャンネルアクセストークンを発行してください(参考:Line公式Doc
  3-3. 作成したGoogle Apps Script を「公開アプリケーション」で公開し、「デプロイしたURL」をコピーする
  3-4. Webhook URL を設定する(参考:Line公式Doc
  3-5. 自分で作成した Bot と友達になる(参考:Line公式Doc
  3-6. お好みでリッチURLを作成して、メニューバーを作成してください(参考:Line公式Doc

4..confi.jsの作成

  4-1. srcディレクトリに、.config.js を作成するため、ターミナルに以下のコードを記述

 $touch src/.config.js

  4-2. .config.jsに以下のコードを記述

 const user = {
   "ACCESS_TOKEN": "Line のアクセストークン",
   "USER_ID": "ラインのユーザーID",
   "REPLY_URL": "https://api.line.me/v2/bot/message/reply",  // 応答message用のURL
   "PUSH_URL": "https://api.line.me/v2/bot/message/push",  // push通知用のURL
   "CALENDAR_ID": "Gメールアドレス"
 }

5. 設定の反映

  5-1. ローカルで作成したものをGoogle Apps Script に反映させるため、ターミナルに以下の記述をする

 $clasp push

  5-2. Google Apps Script の Webエディタ に行き、デプロイのバージョンを更新する


以上でセットアップは完了です

■ライセンス

MIT License

Copyright (c) 2021 YoshidaInasaku

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

ラインでスケジュール管理ができます

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published