けっこう前に適当に書いたコードの話。
某ゲームのChatworkグループに所属しているのだが、Discordしか見ないメンバーもいてDiscordでも見れるようにしてほしいとの要望から作りました。
こんなかんじ
書いたコード
- GASで実装
- 15分ごとにChatwork監視(もっと頻度多くてもよさそう)
- 新規メッセージがあればDiscordのWebhookを叩く
function main() { var messages = getMessages(); if(!messages) { return; } var message = []; for (var i = 0; i < messages.length; i++) { message.push(messages[i].account.name + ' > ' + messages[i].body); } message = message.join('\n'); sendMessageToDiscord(message); } function getMessages () { var params = { headers : {"X-ChatWorkToken" : ChatworkAPI申請して取得したトークン}, method : "get" }; var room_id = Chatworkの部屋ID; var url = "https://api.chatwork.com/v2/rooms/" + room_id + "/messages"; var rawRespons = UrlFetchApp.fetch(url, params); if(rawRespons == "") { return; } var response = rawRespons.getContentText(); var json = JSON.parse(response); Logger.log(json); return json; } function sendMessageToDiscord (message) { var url = 'https://discordapp.com/api/webhooks/チャンネル番号/トークン'; var payload = JSON.stringify({content: message}); var params = { headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'User-Agent': 'DiscordBot (http://example.com, v0.0.1)', }, method: "post", payload: payload, }; Logger.log(params); var rawRespons = UrlFetchApp.fetch(url, params); } function test () { sendMessageToDiscord('テストでーすwww'); }
事前にやること
- ChatworkAPI申請
- Discord Webhookの作成