リモートワークが一般的になり、社内コミュニケーションの重要性がますます高まっています。特に、オンラインでのやり取りが中心の職場では、社員同士の会話が減り、孤独感を感じることもあるでしょう。そんな時、ユーモアのある仕組みを導入することで、コミュニケーションの活性化につながります。
今回は、Google Apps Script(GAS)を使って「Chatwork 発言ランキング BOT」を作成する方法をご紹介します。社内の会話を盛り上げるツールとして、ぜひ活用してみてください。
Chatwork 発言ランキング BOT とは?
このBOTは、Chatwork の特定のルーム内での発言回数を自動で集計し、週に一度ランキングを発表する仕組みです。発言数に応じて称号を付与することで、楽しみながら社内のチャットを活性化できます。
ランキングの称号一覧
順位 | 称号 | 説明 |
---|---|---|
1位 | 👑 今週の発言王 | 最も発言した人 |
2位 | 🥈 影のフィクサー | 2番目に発言が多い人 |
3位 | 🥉 キレ者 | 3番目に発言が多い人 |
4位以下(10回以上発言) | ✨ 堅実派 | しっかり発言している人 |
この BOT を導入することで、社員同士の会話を促進し、業務の効率化にもつながるかもしれません。
Chatwork 発言ランキング BOT の作り方
必要なもの
-
Google Apps Script(GAS)
-
Chatwork のルーム ID(集計対象のルーム)
GAS のコード
以下のスクリプトを Google Apps Script に記述し、必要な情報を設定してください。
function postWeeklyChatworkRanking() {
const API_TOKEN = "YOUR_CHATWORK_API_TOKEN";
const ROOM_ID = "YOUR_CHATWORK_ROOM_ID";
const LAST_DAYS = 7; // 1週間分の発言を集計
// 1. 過去7日間のメッセージを取得
const messages = getChatworkMessages(API_TOKEN, ROOM_ID, LAST_DAYS);
// 2. 発言回数をユーザーごとに集計
const ranking = countMessagesByUser(messages);
// 3. 称号をつけてランキングメッセージを作成
const rankingMessage = generateRankingMessage(ranking);
// 4. Chatworkに投稿
postToChatwork(API_TOKEN, ROOM_ID, rankingMessage);
}
function getChatworkMessages(apiToken, roomId, days) {
const url = `https://api.chatwork.com/v2/rooms/${roomId}/messages?force=1`;
const options = {
method: "GET",
headers: { "X-ChatWorkToken": apiToken },
muteHttpExceptions: true,
};
const response = UrlFetchApp.fetch(url, options);
const messages = JSON.parse(response.getContentText());
// 過去◯日分のメッセージだけを抽出
const threshold = new Date();
threshold.setDate(threshold.getDate() - days);
return messages.filter(m => new Date(m.send_time * 1000) >= threshold);
}
function countMessagesByUser(messages) {
const counts = {};
messages.forEach(msg => {
const userId = msg.account.account_id;
counts[userId] = (counts[userId] || 0) + 1;
});
return Object.entries(counts).sort((a, b) => b[1] - a[1]);
}
function generateRankingMessage(ranking) {
if (ranking.length === 0) return "今週の発言はありませんでした…🥲";
let message = "🏆 *今週の発言ランキング!* 🏆\n";
const titles = ["👑 今週の発言王", "🥈 影のフィクサー", "🥉 キレ者"];
ranking.forEach((user, index) => {
const [userId, count] = user;
const title = titles[index] || "✨ 堅実派";
message += `${title}: [picon:${userId}] (${count}回)\n`;
});
return message;
}
function postToChatwork(apiToken, roomId, message) {
const url = `https://api.chatwork.com/v2/rooms/${roomId}/messages`;
const payload = { body: message };
const options = {
method: "POST",
headers: { "X-ChatWorkToken": apiToken },
payload: payload,
muteHttpExceptions: true,
};
UrlFetchApp.fetch(url, options);
}
設定手順
-
YOUR_CHATWORK_API_TOKEN と YOUR_CHATWORK_ROOM_ID を適切な値に変更
※チャットワークのトークンとルームIDの取得方法は下記を参照ください -
GAS のトリガーを設定し、毎週月曜9時に実行 するように設定
-
スクリプトを実行し、Chatwork にランキングが投稿されることを確認
まとめ
この BOT を活用すれば、Chatwork 上での発言を可視化し、コミュニケーションの促進につなげることができます。ランキング形式にすることで、ゲーム感覚でチャットの活性化が図れるのもポイントです。
ぜひ、あなたの職場でも「今週の発言王」を決めてみてはいかがでしょうか?
あなたの会社の社内コミュニケーションを、ちょっと楽しくするツールとしてお試しください!
▼ 役に立ったらブックマークお願いします!
![]() |
現役公認会計士が解説!GASで自動化する経営管理【電子書籍】[ 稲垣 大輔 ] 価格:1980円 |
![]() |
プログラム未経験者でもOK!! 業務効率化/自動化のためのGoogle Apps Script [ 事務職たらこ ] 価格:2420円 |