GAS|Google カレンダーの予定を毎日(始業・終業時刻に)チャットワークへ自動的に送信する|秘書 bot|活用事例|非エンジニアのための「Google Apps Script」
Google Apps Script(GAS)と Chatwork(チャットワーク)を組み合わせて「業務改善・効率化」を行う企業の事例は多く、弊社でも積極的に導入しています。
この note では、実際に弊社で導入している GAS × Chatwork 活用事例を、その全プログラムと共に公開します(プログラムはダウンロード提供します)。
内容は以下の通りです。
・Google カレンダーに登録済みの「今日の予定」を、GAS のプログラムを使って全て取得する
・その日の朝 9:00(始業時間)に、特定のグループチャットへ「今日の予定」を自動的に送信する
▲図解(流れのイメージ)
・Google カレンダー上で「変更された予定」を自動的に GAS で検知して、 Chatwork へその予定を改めて送信する
▲図解(流れのイメージ)
このような機械的な自動化は、使えば使うほど本当に便利で、弊社では「秘書 bot」と呼んで親しんでいます。
# 完成したグループチャットでイメージを掴もう!
以下のグループチャットは、このプログラムが完成した実際の状態です。どのように運用されるのか、具体的なイメージをまずは掴みましょう。
このグループチャットへの参加には管理者の承認が不要ですので、アクセスすれば誰でも自由に閲覧できます。
招待リンク
https://www.chatwork.com/g/npj52ac0m32dnx
▲招待リンク画面
青い「このグループチャットへ参加する」をクリックします。
▲完成したグループチャット
このグループチャットはサンプルのため、権限を制限しています。「メッセージの送信」や「タスクの追加」などは一切できません。また、第三者にチャットの参加者一覧を表示することもありません。
# GAS のプロジェクト(スクリプト)を作成する
では、GAS のプログラムを始めましょう!
GAS では、一つのプログラム(やサービス)の仕組みを「プロジェクト(スクリプト)」という単位で作成し管理します。
以下の記事を参考に、まずは GAS の「プロジェクト(スクリプト)」を作成してください。
# Chatwork のグループチャットを新規作成する
GAS からメッセージを送信する宛先となる Chatwork の「グループチャット」を新規作成します。例えば、以下のように「Google カレンダー」というチャット名にします。
▲グループチャットを新規作成
勿論、既に存在するグループチャットを宛先にすることもできます。
GAS からメッセージの宛先を特定するために、「チャットルーム ID」が必要になります。「チャットルーム ID」は、グループチャットの URL に含まれています。以下の構成になっています。
グループチャットの URL
https://www.chatwork.com/#!rid160156015
チャットルーム ID
160156015
▲グループチャットの URL
では、忘れない内に、GAS にこの「チャットルーム ID」を保存しておきます。
以下のように、プロジェクト画面のメニュー「ファイル」から「プロジェクトのプロパティ」を選択します。
▲「プロジェクトのプロパティ」を選択
次に、「スクリプトのプロパティ」タブを選択します。
▲「スクリプトのプロパティ」タブを選択
青字の「+ 行を追加」をクリックします。「プロパティの名前」欄には「chatwork_room_id」と入力し、「値」欄には「チャットルーム ID」を入力します。
▲「チャットルーム ID」を入力
入力したら、「保存」をクリックします。
# Chatwork API トークンを発行、表示する
プログラムから Chatwork に対して何らかのメッセージを送信したい場合、Chatwork が公式に提供している「Chatwork API」を使うことになります。この「Chatwork API」を使うときに、必ず必要となるのが「Chatwork API トークン」です。
以下を参考に、「Chatwork API トークン」を発行、表示してください。
では、「チャットルーム ID」と同様に、GAS にこの「Chatwork API トークン」も保存しておきましょう。
「スクリプトのプロパティ」で、青字の「+ 行を追加」をクリックします。「プロパティの名前」欄には「chatwork_api_token」と入力し、「値」欄には「Chatwork API トークン」を入力します。
※以下に表示されているトークンは、記事執筆用のダミー文字列です
※トークンは第三者へ開示しないよう、取り扱いには十分ご注意ください
▲「Chatwork API トークン」を入力
入力したら、「保存」をクリックします。
# 予定を社内共有する Google カレンダーを作成する
社内で予定を共有するための「新しい Google カレンダー」を用意します。勿論、既に存在するカレンダーを使うこともできます。
GAS から Google カレンダーに対して予定を取得したり、予定を登録したり、何らかの制御を行いたい場合、そのカレンダーを一意に識別する「カレンダー ID」が必要になります。
以下を参考に、「カレンダー ID」を確認してください。
では、「チャットルーム ID」「Chatwork API トークン」と同様に、GAS にこの「カレンダー ID」も保存しておきましょう。
「スクリプトのプロパティ」で、青字の「+ 行を追加」をクリックします。「プロパティの名前」欄には「google_calendar_id」と入力し、「値」欄には「カレンダー ID」を入力します。
▲「カレンダー ID」を入力
入力したら、「保存」をクリックします。
# 特別休暇を管理する Google カレンダーを作成する
会社の創立記念日や夏季休暇、年末年始休暇など、公休ではない「会社の特別休暇を管理するカレンダー」を用意します。
前項と同様の手順で、このカレンダーの「カレンダー ID」も確認します。
GAS に、この「カレンダー ID」も保存しておきましょう。
「スクリプトのプロパティ」で、青字の「+ 行を追加」をクリックします。「プロパティの名前」欄には「google_calendar_holiday_id」と入力し、「値」欄には「カレンダー ID」を入力します。
▲「カレンダー ID」を入力
入力したら、「保存」をクリックします。
# Calendar API を有効にする
誰かが Google カレンダーの予定を「登録」「変更」「削除」したとき、それら操作を GAS は自動的に検知することができます。
それらを検知したときにも、Chatwork へメッセージを送信します。
その仕組を実現するには、Google が公式に提供している「Calendar API」を使います。事前に、その機能を有効(ON)にしておきましょう。
以下のように、プロジェクト画面のメニュー「リソース」から「Google の拡張サービス」を選択します。
▲「Google の拡張サービス」を選択
「Calendar API」を「ON」にします。スイッチが緑色になります。
▲Google の拡張サービス
「OK」ボタンをクリックします。これで、有効になりました。
以上で事前準備は全て整いました。以下では、機能を実現するプログラムを実装していきます。
# Chatwork のグループチャットに予定を送信する
「Chatwork API」を使って、Chatwork のグループチャットに予定を送信する機能をプログラムします。実装は以下の通りです。
事前に「スクリプトのプロパティ」へ保存しておいた「チャットルーム ID」と「Chatwork API トークン」を、この機能で使っています。
ここから先は
¥ 480
食費入力のみ家計簿アプリ「食費簿」、自慰管理アプリ「アイナーノ」、どちらも御陰様で好調です。より良いアプリ開発に役立てます。