【问题标题】:Debugging a Slack WebHook调试 Slack WebHook
【发布时间】:2021-06-10 12:42:46
【问题描述】:

我正在尝试向 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。

谢谢!

【问题讨论】:

    标签: node.js axios webhooks slack-api


    【解决方案1】:

    通过设置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')
    }
    

    【讨论】:

      猜你喜欢
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-05
      • 2019-09-17
      • 1970-01-01
      相关资源
      最近更新 更多