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

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

 

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

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

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

私はこんな状況でした。

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

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

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

たけ
たけ

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

(作業想定時間:40分)

「自分だけでやるの、しんどいな…」という方は

Chatwork予約投稿の設定を、個別でレクチャーします。

ご希望の方は、LINEからのご連絡お願いします。

🎁LINE登録プレゼント実施中🎁

たけ
たけ

手順は次の通りです。

これさえやれば、あとは「新規の予約投稿の入力」だけで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予約投稿システムの活用方法」

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

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

Chatworkの予約投稿の導入、お手伝いします

たけ
たけ

この記事で解説している「Chatworkの予約投稿」ですが、もし「導入したいけど自分でできそうにない」と思ったら、LINEでご連絡ください。レクチャーします。

「自分だけでやるのしんどいな…」という方は

Zoomなどのビデオミーティングで、画面共有しながらレクチャーします。

ご希望の方は、LINEからお問合せお願いします。

🎁LINE登録プレゼント実施中🎁

コメントを残す

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

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