見出し画像

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 トークン」を、この機能で使っています。

ここから先は

15,665字 / 19画像 / 1ファイル

¥ 480

食費入力のみ家計簿アプリ「食費簿」、自慰管理アプリ「アイナーノ」、どちらも御陰様で好調です。より良いアプリ開発に役立てます。