はじめに
弊社では可能なことはできる限り自動化する方針で雑務を調整しています。
その中の一つとして、毎週のお掃除当番をそれぞれ選任するBotを運用しているのですが、なかなか便利なので備忘録も兼ねて残しておこうと思います。
Botの実装方法
今回のゴールとして、毎週決まった曜日の決まった時間にBotが実行されるようにします。
また、Botの実装はGAS(Google Apps Script)を使用して実装します。
実装の詳細は以下になります。
function handler() {
// Slack の "メンバーID" を指定する
const members = [
"AAAAAA",
"BBBBBB",
"CCCCCC",
"DDDDDD",
"EEEEEE"
];
for(var i = members.length - 1; i > 0; i--){
var r = Math.floor(Math.random() * (i + 1))
var tmp = members[i]
members[i] = members[r]
members[r] = tmp
}
const pair =
`
来週のお掃除担当は<@${members[0]}>さんと,<@${members[1]}>さん
`;
const incomingWebhookUrl = "Slackで投稿したいチャンネルのWebHookUrlを指定してください";
// Slack に投稿
UrlFetchApp.fetch(incomingWebhookUrl, {
"method": "post",
"contentType": "application/json",
"payload": JSON.stringify(
{
"text": pair,
}
)
});
}
実装は以上になります。
選任ロジックや投稿する際のメッセージはあくまでサンプルとしての内容になっているので、ご利用の際にそれぞれに合った実装で調整してあげてください。
また注意点として、コメントにもありますがメンションをつける場合には必ずメンバーIDを指定するようにしてください。
メンバーIDを指定しないと、日本語のユーザーなど一部のメンバーだけメンション化されないみたいな問題が起きます。
上記を実装したらあとは、画面左のトリガーから定期実行の間隔などを指定してあげる形になります。
設定の内容は以下を参考にしてみてください。
Botの設定は以上です、GASめちゃくちゃ便利です。
さいごに
最近体重が落ちなくなってきました、悲しい