🦕
DenoからSlackのWebhookにメッセージ投げる
最低限の実装
ログ投げとかに使う
.envファイルにWebHookリンク書いておく
slackWebHook = "https://hooks.slack.com/services/〜"
本体
import "https://deno.land/x/dotenv/load.ts";
class HTTPError extends Error { }
export default class Slack {
slackWebHook: string;
constructor() {
this.slackWebHook = Deno.env.get('slackWebHook') ?? "";
}
async post(message: string) {
const payload = {
"username": "<<ボットのユーザ名>>",
"icon_emoji": ":<<emoji_of_bot>>:",
"text": message
}
const options = {
method: 'POST',
body: `${JSON.stringify(payload)}`,
}
const response = await fetch(this.slackWebHook, options);
if (!response.ok) {
response.text().then((message) => {
throw new HTTPError(`${response.status} : ${response.statusText} ${message}`)
})
}
}
}
呼び出し側
import Slack from "./slack.ts"
slack.post(`ふげほが`)
Discussion