【问题标题】:Get user-id of user in direct message slack channel在直接消息松弛通道中获取用户的用户 ID
【发布时间】:2020-03-05 09:49:36
【问题描述】:

我们正在开发一个 Slack 机器人,其中一个斜杠命令(在直接消息通道中使用时)应该能够确定直接消息通道中目标用户的 Slack 用户 ID。例如,假设有 3 个 Slack 用户 User1、User2 和 User3。如果 User1 在他的直接消息通道中与 User3 进行/someaction,则 Slack 服务器会将以下属性发布到我们对 /someaction 命令的实现:

token
team_id
team_domain
channel_id
channel_name=directmessage
user_id
user_name=User1
command=%2Fsomeaction
text=
response_url=https%3A%2F%2Fhooks.slack.com%2Fcommands%2/........
trigger_id=....

user_id/user_name 是来自发出命令的人,所以在这种情况下是 User1。

要获取 User3 的 user_id,我们使用 conversations.info API,其中我们传递了提供给上述 /someaction 命令的 channel_id

现在的问题是,当 User1 在 Slack 中发出命令时,它确实有效,但是当 User2 发出命令时(在他与 User3 的直接消息通道中),它不起作用。我们确实注意到在调用 User1 和 User2 时提供的 channel_id 不同,这是有道理的,因为两者都有自己的与 User3 的直接消息通道

来自用户 2 的响应

curl https://slack.com/api/conversations.info?token=TOKEN\&channel=D0123456G&pretty=1
{
    "ok": false,
    "error": "channel_not_found"
}

问题:

  1. 为什么它对 User1 有效,而对 User2 无效?我们唯一能想象的是,User1 已经在 Slack 工作区中部署了 Slack 应用程序。但这不应该影响这种行为还是应该影响?

  2. 有没有其他方法可以根据该私信频道的channel_id获取该私信频道的目标用户的用户ID?

【问题讨论】:

  • 哦...精心设计的问题!
  • 您可以让 Slack 工作区中的每个人都在您的应用程序授权范围内阅读直接消息和私人渠道会发生这种情况。

标签: slack slack-api slack-commands


【解决方案1】:

这种方法在用户 2 和用户 3 之间的直接消息通道中不起作用的原因是您的应用无法访问该通道,因此在该通道上调用 conversations.info 时您会得到 channel not found

它没有访问权限,因为它是由用户 1 安装的,因此该应用只能看到用户 1 有权访问的频道。这是由于 Slack 中的安全架构是如何工作的。

据我所知,无法通过斜杠命令获取直接消息频道的其他成员的用户 ID。

【讨论】:

  • “这是由于 Slack 中的安全架构是如何工作的。”我理解解释-谢谢-但这对我来说似乎很奇怪。为什么安装它的应用程序的功能很重要?当我在团队中安装 Slack 应用程序时,我希望所有团队成员都以相同的方式使用它(在频道、私人频道、直接消息和私人聊天中)……对我来说,与其他几十个或数百个用户没有什么不同.仅将私人频道选择给安装程序可以访问的频道,这很奇怪。我认为 Slack 可以更好地改变这种行为......
  • @JochemSchulenklopper 我能理解你的观点。然而,这就是 Slack 的设计方式。对他们来说,渠道安全是重中之重。这就是为什么即使是 Slack 团队的超级用户(“主要所有者”)也无法访问未受邀的私人频道。
  • @ErikKalkhoven,我明白了;谢谢。他们仍然可以支持这一点,也许考虑到应用程序范围和必要的权利。 Gero 提到该应用程序正在使用斜杠命令,因此该应用程序可以接收的唯一(?)信息是由有权访问该(私人)频道或私人聊天的人输入的。奇怪的是 app / slash 命令在 Slack 客户端中运行良好,在私人聊天/频道中也是如此。奇怪的是,Slack API 不会将信息返回给应用程序——该(私人)频道或聊天中的任何参与者都可以使用的信息。
猜你喜欢
  • 2021-05-24
  • 1970-01-01
  • 2018-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-24
  • 1970-01-01
相关资源
最近更新 更多