実現したいこと
チャットワークのグループチャットで
特定のワード、例えば「@田中太郎」といったワードがあるメッセージが送られたタイミングで
別のグループの部屋に付け加えたいメッセージ+同じメッセージが流れるようにしたいです。
どなたかご教授いただけますと幸いです。
前提
GASとチャットワークのwebhook、APIを使ってやろうとしてるのですが、うまくいきません。
試したこと
ChatworkのWebhookの連携
GASで書いているコードはこちらです。
function doPost(e) {
// Webhookからのデータを取得
var postData = e.postData ? JSON.parse(e.postData.contents) : {};
// 特定のグループチャットで受け取りたいキーワード
var keywords = ["@田中 太郎", "キーワード2"];
// 通知を送りたい別の部屋のID
var destinationRoomId = "340924841";
// メッセージが投稿された部屋のIDを取得
var sourceRoomId = postData.room_id;
// メッセージの本文を取得
var message = postData.body;
// キーワードが含まれている場合は通知を送る
if (containsKeyword(message, keywords)) {
sendNotificationToChatWorkRoom(destinationRoomId, message);
}
// 応答
return ContentService.createTextOutput("OK");
}
function containsKeyword(message, keywords) {
// メッセージがキーワードを含んでいるかチェック
for (var i = 0; i < keywords.length; i++) {
if (message.includes(keywords[i])) {
return true;
}
}
return false;
}
var api_token = PropertiesService.getScriptProperties().getProperty('cw_token'); // ここにAPIトークンを入力してください
function sendNotificationToChatWorkRoom(apiToken, roomId, message) {
// 通知メッセージを生成
var notification = "[To:" + roomId + "] " + message;
// ChatWorkの別の部屋に通知を送信
var params = {
headers: { "X-ChatWorkToken": apiToken },
method: "post",
payload: { body: notification },
};
var url = "https://api.chatwork.com/v2/rooms/" + roomId + "/messages";
UrlFetchApp.fetch(url, params);
}
補足情報(FW/ツールのバージョンなど)
・GAS

あなたの回答
tips
プレビュー