我将Slack / Node.js机器人用于https://www.npmjs.com/package/@slack/interactive-messages和https://www.npmjs.com/package/@slack/events-api。我使用以下命令捕获了与机器人的任何交互:
slackEvents.on(‘message’, (message: any, body: any) => …);
在Slack用户可以与机器人聊天之前,他们必须使用以下命令将其集成到其工作区中:https : //api.slack.com/docs/sign-in-with-slack(可在我的网站上找到登录用户)。成功响应后,我将获得两个不同的访问令牌:
我将上述令牌存储在数据库中的用户记录中。我使用xoxb令牌从也可以访问数据库的bot引擎执行方法,例如:https : //api.slack.com/methods/chat.postMessage
但是,一旦集成了僵尸程序,该僵尸程序就会暴露给许多用户。没有执行“以松弛方式登录”过程并且在数据库中的用户记录中没有任何xoxp或xoxb令牌的用户。我可以使用什么xoxb令牌与他们进行chat.postMessage?
我看到Slack API Bot仪表板的“ OAuth和权限”链接下有一个OAuth访问令牌(xoxp)和Bot用户OAuth访问令牌(xoxb)。这是一个主要的xoxb令牌,可用于在集成我的应用程序的任何工作空间中向Slack中的所有用户chat.postMessage吗?
令牌始终绑定到一个工作空间和一个用户。没有适用于多个工作空间的“主”令牌。
但是,一个应用程序通常每个工作区只需要一个令牌,它可以在按时安装过程中收到(如您所述)。您显然想在应用数据库中存储该令牌(机器人用户令牌和访问令牌,如果您有机器人用户的话)。
只要您的应用具有必要的范围,它就可以将该令牌用于涉及该工作空间的所有API调用。例如,您可以将消息发送给具有相同令牌的任何用户。为此,您需要做的就是将团队ID(从传入请求到正确的令牌)与您的响应相匹配。
要向任何用户发送直接消息,只需将用户ID用作通道chat.postMessage
。您可以在消息事件中获得该ID。
由于您具有机器人用户,因此建议您尽可能使用机器人令牌,并且仅在机器人令牌不起作用(并非所有API方法都适用于机器人令牌)的情况下才使用访问令牌。
这些标记之间的差异的详细说明可以在此处找到。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句