【问题标题】:Open direct message channel to a user with a Slack Workspace token?使用 Slack Workspace 令牌向用户打开直接消息通道?
【发布时间】:2018-12-20 00:17:07
【问题描述】:

我正在为 Slack 开发一个新的 Workspace app。我有一个用例,我需要通过直接消息(或 IM)向 Slack 中的用户发送通知。由于chat.postMessage 端点需要一个频道ID,我可以使用conversations.list 获取现有的IM 频道并向他们发送通知。

但是,如果用户还没有从他们那里打开一个 IM 频道,我需要创建一个。似乎 Web API 端点(conversations.openim.open)都不支持 Workspace 令牌。我不断收到 not_allowed_token_type 错误响应。我可以使用conversations.create 创建一个公共频道,但这不是我需要的。

在使用 Workspace 令牌时,是否有另一个可以向用户打开 IM 频道?

【问题讨论】:

  • 我遇到了完全相同的问题。 chat.postMessage 的文档说 Workspace 令牌/应用程序应该能够只为 channel 参数传递一个用户 ID,但这会为除应用程序安装程序之外的任何人返回 no_permission。我也先尝试了im.open,然后我得到了所有用户的not_allowed_token_type

标签: slack slack-api


【解决方案1】:

我花了一段时间才弄清楚这一点。您需要将conversations.app_home:create 范围添加/请求到您的权限。然后,您可以在 chat.postMessage 调用中将用户 ID 指定为通道 arg。

【讨论】:

  • 不错的收获!必须是新的,因为他们的开发人员支持告诉我当时他们还没有决定如何实施它。但仍有一个问题:用户必须手动打开app_home 频道,然后才能通过消息。仍然无法从应用端打开该频道,但这似乎是他们的设计决定。
  • 这一直适用于我的工作区,无需用户先打开机器人窗口。这也是文档所暗示的,这是 im.open 的替代品
  • 这很奇怪。它不在我的。即使在使用新权限重新安装应用程序之后。
  • 在我的应用程序中不存在,您能帮助如何找到它
猜你喜欢
  • 2022-12-07
  • 2021-01-07
  • 2020-01-24
  • 2017-08-13
  • 2019-04-17
  • 2021-01-03
  • 2017-02-27
  • 1970-01-01
  • 2020-08-15
相关资源
最近更新 更多