情况:
问题:
答案 0 :(得分:0)
您在技术上是正确的,即通过不订阅链接到某些会话类型的事件,您的机器人将不会接收来自这些会话的消息,因此显然不会对其做出反应。
但是,在我看来,这不是一个好方法,因为你希望你的机器人始终能够响应用户而不会显得“死”。至少告诉用户他没有被授权。还要考虑您的僵尸用户仍然可以被邀请加入所有会话类型。
相反,您的机器人应该订阅所有相关事件,然后根据他获得的事件做出反应并应用限制。
只需检查主叫用户是否经过身份验证即可限制对机器人的访问。例如消息事件始终包含用户标识。您可以通过检查当前请求的频道ID来进一步限制,例如,表明它是否在公共或私人频道中使用。
示例消息事件:
{
"type": "message",
"channel": "C2147483705",
"user": "U2147483697",
"text": "Hello world",
"ts": "1355517523.000005"
}
请注意,订阅message.groups
等事件意味着您的机器人将收到发送到您的机器人用户所属的那些频道的所有消息。然后你的机器人应用程序需要过滤它们并选择正确的消息作出反应。如果您只想对@botuser
做出回应,您可以考虑仅订阅app_mention
。
一个更正:虽然您无法使用机器人令牌创建新的私人频道,但您的Slack应用程序将始终接收bot机器人令牌和用户令牌。使用后者,您可以代表安装用户创建新的私人频道。
请注意,您可能还需要考虑将slash commands用于机器人(例如/mgmtbot info
),而不是机器人用户/事件。您可以根据用户ID和呼叫者的频道限制您的响应,类似于事件,并且用户可以使用斜杠命令,而无需先邀请您的僵尸用户加入对话/频道。