Chatworkの予約投稿「指定日にメッセージ送信」する方法

起業家さん向けに「そのタスクまかせちゃおう!」の「タスク整理サービス」をやっている竹本ひろこです。

 

Chatworkで「メッセージの送信日と内容が決まっている」という方に、「Chatworkの予約投稿」がおすすめです。

この記事では「Chatworkの予約投稿の方法」について解説します。

私自身、Chatworkでの連絡先が増えてきたので、自分が半自動化するシステムを導入したくて調べて実践しました。

私はこんな状況でした。

  • 前回と同じようなメッセージを送信するとき、前回のメッセージを探してコピペするのが面倒
  • メッセージの送信予定日と内容をChatworkで「自分にタスク」をつけても、忘れることがある

同じようなお悩みがある方にも、「Chatworkの予約投稿」が断然おすすめです。

APIとか聞きなれない言葉が出てくるかもしれないですが、マネすればできるはずです。

たけ
たけ

時間を確保して、やっていきましょう。

(作業想定時間:40分)

たけ
たけ

手順は次の通りです。

これさえやれば、あとは「新規の予約投稿の入力」だけでOKです。

 

Step.1 ChatworkでAPIトークンを発行する

Chatworkで「APIトークン」を発行して、コピーする。
※自分のChatworkのシステムを動かす「鍵」なので、外部漏出しないようにしましょう。

>>ChatworkでAPIトークンを発行する

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予約投稿システムの活用方法」

私は、イベント当日の朝と夕方と両方で予約投稿したかったので、朝用と夕用のスプレッドシートを作りました。

コードを新しく書くのが面倒だったので、作成したスプレッドシートをコピーして、「トリガーの時間だけ」変更しました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください