用数据响应 Express 中的 Slack url

Posted

技术标签:

【中文标题】用数据响应 Express 中的 Slack url【英文标题】:Responding with data to a Slack url in Express 【发布时间】:2016-04-12 10:54:28 【问题描述】:

我的 Node 后端使用 express 中间件有以下路由。我的应用程序使用 Slack 反斜杠 api 发布指向用户频道的链接。当用户单击时,它会在 Heroku 上托管的 Angular 应用程序上打开一个表单。

我要做的是在提交表单时更新 Slack 用户。

所以问题是,当下面的路由被触发时,我如何向 slack url 发送发布请求(显然 res 指向 /update)。我进行了很多研究并尝试重写标头并使用低级 http 方法,但我觉得有更好的解决方案。非常感谢您的帮助。

app.post("/update", function(req,res,next) 
    res url -> http://slackapi/12345/
    res.json("text":"hello":
)

【问题讨论】:

【参考方案1】:

res 不应该发送给 slack,这是对与您联系的人的回复。你需要向 slack 发送一个不同的请求,然后用 res 返回任何你想要的东西。

您可以使用request 模块生成一个http 请求来slack。

var request = require('request');

app.post("/update", function(req,res,next) 
  request('http://slackapi/12345/', function (error, response, body) 
    if (!error && response.statusCode == 200) 
      console.log(body);
      res.json("text":"some answer to the requester"); 
     else 
      res.json("text":"notify requester sending to slack falied");
    
  );
);

【讨论】:

谢谢,我不介意使用请求,但有没有快速的方法? 不,express是服务器的一个模块,它可以接收请求,而不是发送请求 谢谢。我最终做了这样的事情 var payload_slack ="text":"Thanks "+, you rock!"; var options = url: slack_url, method: "POST", json:true, body:payload_slack ; request.post(options, function(error, response, body) if(!err) return res.json(resp); 其中 res 是角度侧的路由重定向:)

以上是关于用数据响应 Express 中的 Slack url的主要内容,如果未能解决你的问题,请参考以下文章

Slack 交互式消息:Slack 没有 POST 响应

对机器人 DM 的 Slack 模态提交响应无法在不同的工作空间上工作

为什么在dialogflow中创建的丰富消息不会出现在经过Slack测试的机器人中?

Express定制参数解析错误响应值

Express 更新 JWT 以响应

有没有办法限制 Node (Express) 中的速度和响应时间?