微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

调试 Slack WebHook

如何解决调试 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')
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。