我不确定是否有办法,但我可以直接将 Twilio 警报从 Twilio 控制台发送到 Slack channel ,而不使用 Python 或任何监听 Twilio 请求并将数据发送到 Slack channel 的 Web 框架吗?
使用 Twilio 控制台,一旦出现新错误,我就可以从那里触发 Webhook,但 Slack 需要 API 中的数据。
谢谢
最佳答案
这里是 Twilio 开发者布道者。
看起来 Slack 期望 webhooks 采用特定格式的 JSON 格式,最简单的形式是具有 text
属性的对象。
Twilio webhook 以 application/x-www-form-urlencoded
格式发送,格式为 the parameters listed here .
为了将其转换为 Slack 能够理解的 Webhook,您将需要一些代码或服务来将表单编码请求转换为具有正确字段的 JSON 请求。
您似乎不愿意自己构建和托管一些东西。如果托管是问题,我可以建议您查看 Twilio Functions来 build 这个。 Twilio Functions 允许您托管可响应传入 HTTP 请求的 JavaScript 函数。
可以将这些警报 Webhook 转换为 Slack Webhook 的 Twilio 函数示例可能如下所示:
const got = require('got');
exports.handler = async function (context, event, callback) {
const slackUrl = context.SLACK_URL;
const { ErrorCode, Description, AccountSid } = event;
const message = `New error for Twilio Account ${AccountSid}.\n\n${ErrorCode}: ${Description}`
try {
await got(slackUrl, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({ text: message })
})
callback(null, "<Response/>");
} catch(error) {
callback(error);
}
}
上面的代码未经测试,但应该给您一个良好的开始。它使用 got
向 Slack webhook URL 发出 HTTP 请求。在本例中,Webhook URL 存储在 environment variable 中。 .
关于twilio - 将 Twilio 警报直接推送到 Slack Channel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69391889/