运行python函数的Slack机器人

问题描述 投票:0回答:1

我正在创建一个Slack Bot,我已经成功安装了它,尽管当我在本地运行节点服务器时,我不确定100%ngrok会如何运行它。我有followed this guide

我有一个python脚本:

  1. 连接到数据库
  2. 下载整个表并创建一个熊猫数据框

在脚本中,我声明了许多变量,这些变量从数据框中获取特定信息。

例如:

monday_sales = sum((df['sale_event_time']>=week) & (df['sale_event_time']<=today_real) & ((df['sale_event_time'].apply(lambda x:x.isoweekday()))==1))

哪个简单地从数据框中返回我星期一的销售量。

我的目标是将slack bot连接到我的python脚本,基本上可以在slack中运行/monday_sales,这将打印出monday_sales变量保存的数字。

我没有使用太多的node或js,因此将所有内容链接在一起我觉得有点困难。

首先,我像这样运行ngrok:

./ngrok http 4390

然后我在本地运行节点服务器(?)

var http = require('http');
const PORT=4390;
function handleRequest(request, response){
  response.end('My bot is ALIIIIIIVEEEEE');
}
var server = http.createServer(handleRequest);
server.listen(PORT, function(){
  console.log("Server listening on: http://localhost:%s", PORT);
});

[当我松弛运行/ngrok时,它会输出'我的机器人是ALIIIIIIVEEEEE,尽管只有我自己可见。

所以这个问题可以分成几部分:

  1. 为什么我需要本地运行ngrok和node.js服务器?
  2. 如何从Slack bot触发python函数/变量。
  3. 是否有更好的方法让松弛机器人仅由python运行而没有节点,ngrok?

非常感谢您的建议。

python node.js slack ngrok
1个回答
0
投票

[我认为您最好的选择是放弃本教程和Node,因为您似乎只是将其用作ngrok包装器。相反,由于您的机器人的其余部分都在Python中,只需使用pyngrok(完整披露,我是开发人员),这是ngrok的Python包装器。它使您可以以编程方式访问隧道和其他所有内容。

如果这可以解决您的用例,则可以签出文档here

© www.soinside.com 2019 - 2024. All rights reserved.