チャットワークにGASからメッセージを送る

GASからチャットワークにメッセージを送ることができます。定期的に社員に業務連絡を送ったり、何かをトリガーにして、チャットにメッセージを送りたい時などに活用して頂けます。
弊社では、月末処理(勤怠の入力完了や、交通費精算など)を忘れないように必ずチャットで社員全員にメッセージを送っています。

チャットワークのAPIトークンを発行する

チャットワーク画面の右上のログインされているアカウント名が表示されている部分をクリックすると、メニューが表示されます。
メニューから「サービス連携」にクリックしてください。

サービス連携画面に遷移したら、左のメニューから、API Tokenをクリックしてください。
ログインパスワードを入力すると、APIトークンが発行できます。
※但し、APIの利用には、管理者の許可が必要になります。

APIトークン発行画面

GASからチャットワークAPIにPOSTする

function chatworkSend() {
  let data = {
    'body': '送信したいメッセージを入れます。'
  };
  //チャットワークのAPIトークンを入れます。'
  let headers = {
    'X-ChatWorkToken': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  };
  let options = {
    'method' : 'post',
    "headers" : headers,
    'payload' : data
  };
 //下記の変数にルームIDを入れます。
  const roomid = '1234567890';
  UrlFetchApp.fetch('https://api.chatwork.com/v2/rooms/'+roomid+'/messages', options);
}

UrlFetchAppクラスを使うことで、外部のAPIなどにアクセスすることができます。
最初の手順で取得したチャットワークのAPIトークンをxxxxxxと記載されている箇所に入力してください。
また、ルームIDを入力する必要があります。
ブラウザでチャットワークを開いて、メッセージを送りたいチャットルームを選択した時に表示されるURLの最後の数字になります。
https://www.chatwork.com/#!rid00000000
上記の場合は、00000000がルームIDとなります。
※アプリ版のチャットワークでログインしている場合は、Webブラウザ版のチャットワーク画面にログインし直して確認してください。

あとは、保存して、作成したchatworkSend関数を実行してみましょう。
※実行方法については、GASで「Hello World!」と表示するの記事を参照ください。

チャットワーク上にメッセージが送信されました。

社員全員宛のメッセージを送る

チャットルームのメンバー全員にメッセージを送る場合、[toall]をメッセージに付けるだけです。
社員全員にメッセージを送る場合、チャットルームに社員全員がメンバーとして入っている必要があります。
メッセージを入れるbodyに下記のように[toall]を追加しました。

'body': "[toall]\n送信したいメッセージを入れます。"

バックスラッシュにnという文字は、改行を意味します。
toallのあとに改行を入れました。
バックスラッシュは、キーボードの右上のほうにある「¥」マークのキーを押すと表示されます。
この改行を意味するコードを、改行として認識させるためには、メッセージをシングルクォーテーションではなく、ダブルクオーテーションで囲む必要があります。
シングルクオーテーションのままですと、バックスラッシュとnがそのままメッセージとして表示されてしまいます。

メンバー全員宛のメッセージが送信できました。

メッセージを定時に送信するタイマーを設定する

スクリプトエディタの左端にある目覚まし時計のアイコンをクリックしてください。

目覚まし時計アイコンにカーソルを持っていくと、トリガーという表示が出ます。

トリガー画面に遷移したら、右下に表示されている「トリガーを追加」ボタンをクリックしてください。下の画面が表示されます。

次のように設定をしてください。

実行する関数を選択・・・今回の場合は、作成したchatworkSendを選択してください。

実行するデプロイを選択・・・Headのまま

イベントのソースを選択・・・「時間主導型」にすることで、実行する時間を設定できます。

時間ベースのトリガーのタイプを選択・・・「月ベースのタイマー」を選ぶことで、毎月何日の何時に実行するという指定が可能です。数時間ごとに実行するなら、「時間ベースのタイマー」に設定し、毎週何曜日の何時に実行するとしたい場合は、「週ベースのタイマー」を選んでください。

日を選択、時刻を選択・・・「月ベースのタイマー」を選んだ場合に設定できます。

設定ができたら、「保存」ボタンを押して保存してください。
トリガー画面の一覧に保存したトリガーが表示されますので、いつでも編集可能です。

以上が、チャットワークにGASからメッセージを送る方法のご紹介でした。
次回は、SlackにGASからメッセージを送る方法をご紹介します。