起業家さん向けに「そのタスクまかせちゃおう!」の「タスク整理サービス」をやっている竹本ひろこです。
Chatworkで「メッセージの送信日と内容が決まっている」という方に、「Chatworkの予約投稿」がおすすめです。
この記事では「Chatworkの予約投稿の方法」について解説します。
私自身、Chatworkでの連絡先が増えてきたので、自分が半自動化するシステムを導入したくて調べて実践しました。
私はこんな状況でした。
- 前回と同じようなメッセージを送信するとき、前回のメッセージを探してコピペするのが面倒
- メッセージの送信予定日と内容をChatworkで「自分にタスク」をつけても、忘れることがある
同じようなお悩みがある方にも、「Chatworkの予約投稿」が断然おすすめです。
APIとか聞きなれない言葉が出てくるかもしれないですが、マネすればできるはずです。
時間を確保して、やっていきましょう。
(作業想定時間:40分)
手順は次の通りです。
これさえやれば、あとは「新規の予約投稿の入力」だけでOKです。
Step.1 ChatworkでAPIトークンを発行する
Chatworkで「APIトークン」を発行して、コピーする。
※自分のChatworkのシステムを動かす「鍵」なので、外部漏出しないようにしましょう。
Step.2 Googleスプレッドシートを作る
1)「シート1」の1行目に次の内容を入力する
- No
- ルームID
- 送信内容
- 送信予定日
- 送信した日時
2)各「列」の「表示形式」を設定する
- No :連番
- 送信予定日 :日付
- 送信した日時 :日時
Step.3 予約したい内容をスプレッドシートに入力する
- ルームID :チャットルームのIDを入力します。
- 送信内容 :即時送信のメッセージ同様、Toで宛先を指定できます。
- 送信予定日 :半角数字で、月日を「x/x」と入力します。
(クリックすると「YYYY/MM/DD」になっていることが確認できます。)
Step.4 Googleアプリの拡張機能を利用する(GASを作る)
1)スプレットシートの「ツール」メニューから「スクリプト エディタ」をクリック
2)「無題のプロジェクト」をクリックして、プロジェクトの名前を変更する
3)「コード.gs」に記載のあるコードを削除
4)次のコードをコピーして「コード.gs」にペースト
// 【編集必須】Chatwork API Token
const token = 'ここにChatwork APIトークン';
function myFunction() { // スプレットシート読み込み const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheetByName('シート1'); const lastRow = sheet.getLastRow() // ChatworkAPIクライント作成 const client = ChatWorkClient.factory({token: token}); // 送信した日時 const today = new Date(); // スプレットシートに記載がある分だけ繰り返す for(var i = 2; i <= lastRow; i++) { const room_id = sheet.getRange(i, 2).getValue(); // ルームID const message = sheet.getRange(i, 3).getValue(); // 送信内容 const reservation_date = new Date(sheet.getRange(i, 4).getValue()); // 送信予定日 // 同じ日付の場合、メッセージ送信 if(diffDate(reservation_date,today)){ client.sendMessage({ room_id: room_id, body: message }); // 送信した日時の記録 sheet.getRange(i, 5).setValue(new Date()); } }
}
// 日付を比較する(同じ場合、trueを返す)
function diffDate(date1, date2){ if(date1.getFullYear() == date2.getFullYear()){ if(date1.getMonth() == date2.getMonth()){ if(date1.getDate() == date2.getDate()){ return true; } } } return false;
}
上のコードは、こちらを参照しました。
5)STEP.1で発行した「APIトークン」をコードの2行目にコピペする
前後の記号「 ‘ (シングルクオテーション)」は消さないでください。
6)「ライブラリ」に「Chatwork Client」を追加する
スクリプトIDはこちらをコピぺしてください。
1nf253qsOnZ-RcdcFu1Y2v4pGwTuuDxN5EbuvKEZprBWg764tjwA5fLav
7)「トリガー」を設定する
保存ボタンクリック後、「ポップアップブロック」が表示された場合は「許可」を選択してください。
トリガーに1行追加されたらOKです。
Step.5 動作テストをして、確認する
時間まで待って送信予定の内容が、Chatworkの目的のルームに届くか確認。
お疲れ様でした!
竹本の「Chatwork予約投稿システムの活用方法」
私は、イベント当日の朝と夕方と両方で予約投稿したかったので、朝用と夕用のスプレッドシートを作りました。
コードを新しく書くのが面倒だったので、作成したスプレッドシートをコピーして、「トリガーの時間だけ」変更しました。