【问题标题】:Slack API remove bot from channelSlack API 从频道中删除机器人
【发布时间】:2018-01-08 13:16:49
【问题描述】:

我想使用 slack 的 API 从频道中删除一个 slack 机器人。 我试过channels.kick 但当然,机器人不是用户,所以不能这样删除。到目前为止,我还没有在 interwet 或 Slacks API 文档上找到任何解决方案。

【问题讨论】:

  • 我不知道谁投票关闭以及为什么,但在我看来,这是一个关于如何使用 Slack API 的合法编程问题。

标签: api slack slack-api


【解决方案1】:

你说的不对。您可以使用 API 方法从公共频道或私人频道中删除机器人用户。我只是在私人频道上测试了它以确认。

因此,这对您不起作用一定还有其他原因。请检查以下任何原因是否适用于您的情况。另外,请提供您从 API 获得的错误消息,因为这将有助于确定原因。

以下是踢出机器人用户可能对您不起作用的一些潜在原因:

  • 方法错误:channels.kick 仅适用于公共频道,将 groups.kick 用于私人频道。
  • 错误的令牌:bot 令牌不能使用 kick 方法。您需要使用用户访问令牌来调用该 API 方法。 (您会收到 user_is_bot 错误)
  • 试图移除自己:用户不能踢自己。 (你会得到cant_kick_self 错误)
  • 不使用频道 ID:kick 方法要求您提供频道 ID,名称不起作用。 (您会收到 channel_not_found 错误)

根据您的问题,我假设您收到了 user_is_bot 错误,这让您(错误地)假设您无法踢机器人。在这种情况下,解决方案是使用用户令牌(而不是机器人令牌)来执行该方法。

【讨论】:

  • 谢谢,当我尝试删除机器人时,我使用我的应用程序的OAuth Access Token。 API 文档声明“身份验证令牌”。需要范围:channels:write` (api.slack.com/methods/channels.kick),这就是为什么我认为我应该使用我的应用程序的令牌。但如果我理解正确,我应该使用我的用户的令牌?
  • 我收到了来自 slack 的回复:object(stdClass)#3 (2) { ["ok"]=> bool(false) ["error"]=> string(14) "user_not_found" } when call slack.com/api/channels.kick
  • 应用令牌很好。根据您的错误:您确定您在 channels.kick 中使用了正确的用户 ID?您从 users.list 获取机器人用户的用户 ID。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-18
  • 2016-11-07
  • 2018-05-16
  • 1970-01-01
  • 2018-06-29
相关资源
最近更新 更多