指定したチャットワークグループ内で新規書き込みがあった際に、「了解」というリアクションを自動でつけるGoogle Apps Scriptのコードを書いていただけないでしょうか?よろしくお願いいたします。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2020/06/30 15:58:06
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

ポイント1000pt

最初に、身も蓋もない話をしますが、この回答を書いている時点で、ご希望の内容を確実に処理する方法はありません。

GAS で対応するということは、Chatwork の REST API を呼び出すということになるのですが、公開されている REST API では、メンションの機能に関するものが公開されていません。
https://developer.chatwork.com/ja/endpoints.html

メンションの機能が公開されたのが一年前。
そのうち、API が公開される可能性は、ゼロというわけではありません。

回答を書いている時点では、投稿への返信ができるところまでです。
以下、質問で求められていることとちょっとずれますが、投稿があったときに自動で返信をする、という GAS の話です。



ここ↓が参考になると思います。
GASとチャットワークWebhookを使って翻訳チャットを作る

Google Apps Script の方は、スプレッドシートでもドキュメントでも構わないので、以下のようなスクリプトを書きます。

const API_TOKEN = '-----APIトークン-----'; //チャットワークAPIトークン
 
function doPost(e) {
  var json = JSON.parse(e.postData.contents);
 
  if (json.webhook_event_type === "message_created") {
    var params = {
      headers : {"X-ChatWorkToken" : API_TOKEN},
      method : "post"
    };

    var roomId = json.webhook_event.room_id;
    url = "https://api.chatwork.com/v2/rooms/" + roomId + "/messages";

    var accountId = json.webhook_event.account_id;
    var messageId = json.webhook_event.message_id;
    
    var body = '了解';
    params.payload = {body :body};
    
    UrlFetchApp.fetch(url, params);
  }
}

先のページに書いてあったものから、以下のようなことをしてます。

  • 翻訳処理を無くして、固定の文字列「了解」に変更
  • 一応、イベントのタイプをチェック
  • 変なところに入ってたセミコロンを削除

Chatwork の管理画面で Webhook を新規に作成するときは、↑の画像と同じで、以下の設定で良いと思います。

  • ルームイベント
  • メッセージ作成のみをチェック

Webhook URL には、スクリプトをWebアプリケーションとして公開した URL を設定します。
Google ドキュメントの例ですが、同じサイトの↓に画像つきで説明があります。
チャットワークWebhookを使ってメッセージ送信をトリガーにGASを起動させる方法


あと、Chatwork の API ドキュメントも見てください。

メンションの機能が API で公開されたならば、後半の部分を書き換えれば、期待した動作が手に入るはずです。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません