【发布时间】:2019-10-23 13:40:46
【问题描述】:
我为我的 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 将其集成到他们的工作区中,这在我的网站上可供登录用户使用。成功响应后,我得到两个不同的访问令牌:
- 来自 bot_access_token 的基于 xoxb 的身份验证令牌(如果我正确,这是基于工作区的访问令牌)
- 来自 access_token 的基于 xoxp 的身份验证令牌(如果我正确,这是基于用户的访问令牌)
我将上述令牌存储在我的数据库中的用户记录中。我使用 xoxb 令牌执行来自我的机器人引擎的方法,该引擎也可以访问数据库,例如:https://api.slack.com/methods/chat.postMessage
但是,一旦机器人被集成,机器人就会暴露给许多用户。未执行“使用 slack 登录”流程且在其数据库中的用户记录中没有任何 xoxp 或 xoxb 令牌的用户。我可以使用什么 xoxb 令牌向他们发送 chat.postMessage?
我看到在“OAuth & Permission”链接下的 Slack API Bot 仪表板中有一个 OAuth 访问令牌 (xoxp) 和 Bot 用户 OAuth 访问令牌 (xoxb)。这是一个主 xoxb 令牌,可用于在任何集成了我的应用程序的工作区中向 Slack 中的所有用户聊天.postMessage?
【问题讨论】:
标签: slack-api