Chatworkをもっと便利に!GASでオリジナルBotを作成する方法

Chatworkにもっと便利な機能を追加したいんだけど、GASでBotを作れるって本当?
猫男
猫男
catman
catman
その通りださ。catmanがGASを使ってChatworkで動くオリジナルBotの作成方法を教えてやろう。

Chatwork Botの基本構造を理解しよう

GASを利用すれば、Chatwork用のBotを作成することができます。まずは、基本的な構造を理解しましょう。

Chatwork APIの設定

ChatworkのAPIを使うには、まずAPIトークンが必要です。Chatworkの設定画面で取得しましょう。

Chatworkの「パーソナル設定」からAPIトークンにアクセスし、新しいトークンを生成します。

このトークンを使って、ChatworkのBotが動くわけです。

GASの準備

GASプロジェクトを作成し、APIリクエストを送るためのスクリプトを書きます。ここでは、Chatworkにメッセージを送るBotのスクリプトを紹介します。


 function sendMessageToChatwork() {
    var token = "YOUR_CHATWORK_API_TOKEN";
    var roomId = "ROOM_ID";
    var message = "Hello, Chatwork!";
    var url = "https://api.chatwork.com/v2/rooms/" + roomId + "/messages";
    
    var options = {
      "method" : "post",
      "headers" : {
        "X-ChatWorkToken": token
      },
      "payload" : {
        "body" : message
      }
    };
    UrlFetchApp.fetch(url, options);
 }

この関数を実行すると、指定したChatwork部屋にメッセージが送信されます。

GASでChatwork Botを作成する

次に、GASを使って実際にBotを作成しましょう。

Chatworkとの連携を考える

自分専用のBotが動作するように、具体的な機能を考えます。たとえば、定期的に特定のメッセージを送信するBotはどうでしょうか。

タイマーで定期実行する

GASのトリガー機能を使えば、関数を定期的に実行することが可能です。


 function setupTrigger() {
   ScriptApp.newTrigger('sendMessageToChatwork')
     .timeBased()
     .everyHours(1)
     .create();
 }

このスクリプトを実行することで、1時間ごとにChatworkにメッセージが送られるようになります。

 

練習問題

以下のタスクを参考に、自分でChatwork BotをGASで作成してみましょう。

  1. 自分のChatwork APIトークンを取得します。
  2. GASプロジェクトに上記のスクリプトを追加します。
  3. 自分のChatwork部屋のIDを使って、メッセージ送信を確認します。
  4. トリガーを設定して、定期的にメッセージを送信するようにしてください。

 
 

解答・解説

以下は練習問題の解答例です。


 function sendMessageToChatwork() {
    var token = "YOUR_CHATWORK_API_TOKEN";
    var roomId = "YOUR_ROOM_ID";
    var message = "これがGASによる定期メッセージだ!";
    var url = "https://api.chatwork.com/v2/rooms/" + roomId + "/messages";
    
    var options = {
      "method" : "post",
      "headers" : {
        "X-ChatWorkToken": token
      },
      "payload" : {
        "body" : message
      }
    };
    UrlFetchApp.fetch(url, options);
 }

UrlFetchApp.fetch()は外部のURLにHTTPリクエストを送るためのメソッドです。この場合、ChatworkのAPIエンドポイントにリクエストし、メッセージをPostingします。

また、トリガー設定関数は以下の通りです。


 function setupTrigger() {
   ScriptApp.newTrigger('sendMessageToChatwork')
     .timeBased()
     .everyHours(1)
     .create();
 }

ScriptApp.newTrigger()は新しいトリガーを作成するためのメソッドです。timeBased()を使うことで、時間ベースにトリガーを実行します。

このスクリプトをセットアップすれば、GASで作成したBotがChatworkをもっと便利にしてくれるでしょう。

EARTHPG 自動化研究所

「その作業、仕組みにできます。」

Google Apps Script、Python、スプレッドシート自動化、WordPress開発、 API連携、AI活用まで対応。 小さな自動化から業務全体の設計まで、研究所が支援します。