首页 > 解决方案 > 调试 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。

谢谢!

标签: node.jsaxioswebhooksslack-api

解决方案


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')
}

推荐阅读