node.js - 调试 Slack WebHook
问题描述
我正在尝试向 Slack 频道发布消息。如果我从浏览器执行此操作,例如通过带有 Ajax 请求的控制台,一切正常 - 我没有收到任何错误,并且消息被发布到 Slack。
但是我需要从 Node.js 应用程序中执行此操作,因此我选择使用 Axios 来处理请求本身。这是我的代码
const url = 'https://hooks.slack.com/services/TOKEN/GOES/HERE';
let requestConfig = {
url: url,
data: {'text': 'foo'},
method: 'POST',
proxy: {
'host': '127.0.0.1',
'port': 3128,
'auth': {
'username': 'myusername',
'password': 'mypwd'
}
}
}
axios.request(requestConfig)
.then((res) => {
console.log(`Slack notification sent - ${res.status}\n${res.data}`);
})
.catch((error) => {
console.log(`Error sending notification to Slack\n${error}`);
});
- 代理本身可以工作并且不是问题,在不同的目标上进行了测试
- 我的状态为 200 OK,正文为空,没有错误,但没有任何内容发布到 Slack
难道我做错了什么?有没有办法调试这个?恐怕存在一些我看不到的潜在问题,并且网络挂钩无论如何都会发送 200。
谢谢!
解决方案
proxy:false
通过设置和配置来设法让它运行httpsAgent
,即使它确实通过代理。
const HttpsProxyAgent = require('https-proxy-agent');
//...
let requestConfig = {
url: url,
data: {'text': 'foo'},
method: 'POST',
proxy: false,
httpsAgent: new HttpsProxyAgent('http://myusername:mypwd@localhost:3128')
}
推荐阅读
- vim - 使用 vim 时如何停止 SSH X11 转发?
- c++ - 从服务器端返回后调用 gRPC 调用
- testing - 我可以绕过等待页面加载到 TestCafe 吗?
- .net - 安装 .NET 5.0 SDK 后,`dotnet new` 失败/出错
- r - 自定义加载器在输出创建过程开始之前显示 na shiny app
- javascript - 使用节点列表改变页面的背景颜色
- discord.js - 如何重新发送邮件中的附件?
- sql - sqlite 查询问题 - 可能的两种解决方案?
- xml - 使用 maven xml:transform 时没有出现 TransformationSets 配置错误
- jenkins - 在詹金斯中存储部署路径的最佳方式