🤹
【GAS】指定日にChatworkへメッセージを投稿する
Google Apps Script(GAS)は、Googleのサービスを自動化するための強力なツールです。今回は、GASを使ってGoogleスプレッドシートに指定された日付にChatworkへ自動的にメッセージを投稿する方法をご紹介します。これにより、リマインダーや通知を手動で送る手間を省くことができます。
必要な準備
- Chatwork APIトークンの取得
- スプレッドシートの準備
- スクリプトの作成
ステップ1:Chatwork APIトークンの取得
まず、Chatwork APIを使用するためにAPIトークンを取得する必要があります。以下の手順で取得できます。
- Chatworkにログインし、API設定ページにアクセスします。
- 「APIトークンを発行する」ボタンをクリックし、表示されたトークンをコピーします。
ステップ2:スプレッドシートの準備
スプレッドシートに以下のような形式でデータを入力します。
- 日付:メッセージを送信する日時
- ルームID:メッセージを送信するChatworkのルームID
- メッセージ:送信するメッセージ
- 完了:処理が完了したら自動でチェックが付く
ステップ3:スクリプトの作成
スクリプトエディタを開き以下のコードを貼り付けます。
// Chatwork API トークンを設定
const API_TOKEN = 'ご自身のChatwork API トークンを指定する';
// スケジュールされたメッセージを送信する関数
function postScheduledMessage() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sh = ss.getSheetByName("シート1");
const values = sh.getDataRange().getValues();
values.shift();
//現在日時
const now = new Date();
for (const [index, value] of values.entries()) {
const [date, roomId, message, flag] = value;
// 既にD列(完了)にチェックが付いてる場合はスキップする
if (flag) continue;
// dateが現在日時以降の場合はスキップする
if (date > now) continue;
//Chatworkにメッセージを投稿する
postMessageToChatwork_(roomId, message);
//D列(完了)にチェックを付ける
sh.getRange(index + 2, 4).setValue(true);
}
}
// メッセージを投稿する関数
function postMessageToChatwork_(roomId, message) {
const url = 'https://api.chatwork.com/v2/rooms/' + roomId + '/messages';
const options = {
'method': 'post',
'headers': { 'X-ChatWorkToken': API_TOKEN },
'payload': { 'body': message, self_unread: "1" }
};
console.log("Chatwork投稿...");
const result = UrlFetchApp.fetch(url, options);
console.log(result.getContentText());
}
//トリガーを設定する関数
function setTrigger() {
console.log(`トリガー設定...`);
const functionName = "postScheduledMessage";
const hour = 9;
//毎日9~10時にトリガーを実行する
ScriptApp.newTrigger(functionName).timeBased().everyDays(1).atHour(hour).create();
}
スクリプトの説明
-
APIトークンの設定:
-
API_TOKEN
には先ほど取得したAPIトークンを入れます。
-
-
メッセージを投稿する関数:
-
postMessageToChatwork
関数は、指定したルームにメッセージを投稿します。
-
-
トリガーを設定する関数:
-
setTrigger
関数は、毎日9~10時に実行されるトリガーを作成します。
-
-
スケジュールされたメッセージを送信する関数:
-
postScheduledMessage
関数は、スプレッドシートのデータに基づいて指定日時にメッセージを送信します。
-
トリガーの設定
- スクリプトエディタ上部の「実行」メニューから「setTrigger」を選択し、実行します。
- 実行後、トリガーの設定ページにアクセスし、正しくトリガーが作成されているか確認します。
最後に
これで、スプレッドシートに指定された日付にChatworkへ自動的にメッセージを投稿する設定が完了しました。GASを活用することで、日常の業務を効率化し、時間を節約することができます。チーム全体の生産性向上に繋がります。是非、試してみてください!
Discussion