【问题标题】:How to join a Slack channel as a Real Time Messaging bot user?如何以实时消息机器人用户的身份加入 Slack 频道?
【发布时间】:2015-06-01 06:41:29
【问题描述】:

channels.join 是机器人用户的not allowed。我希望我的使用 RTM 的机器人能够收听机器人集成页面中未列出的频道。

我没有看到在机器人集成页面中更改频道的方法:

这只是机器人的限制还是我在这里遗漏了一些基本的东西?

【问题讨论】:

    标签: slack-api


    【解决方案1】:

    我遇到了同样的问题,但不确定为什么我的机器人只收听某些频道。

    您的机器人需要被用户邀请加入每个频道。在 Slack 应用程序的所需频道中运行此命令以执行此操作

    /invite @<your_bot_name>
    

    一旦进入频道,他们就应该能够收听事件。

    【讨论】:

    • 另外在团队视图中,您可以选择@bot,然后选择邀请。显然,这会触发 /invite 命令;)
    【解决方案2】:

    截至 2017 年 5 月,这仍然是机器人的限制,因为它引入了一个错误 - 请参阅 paulhammod 在https://github.com/slackapi/node-slack-sdk/issues/26 的回答。添加机器人的正确方法是@MattGifford 指出的斜杠命令/invite @&lt;bot.user&gt; &lt;channel_name&gt;

    不过,@nafg 引入了一个有趣的解决方法。如果您为您的帐户生成个人 API_TOKEN,则可以使用它来邀请机器人。 例如,在 python 中可以运行:

    import slackclient sc = slackclient.SlackClient(<PERSONAL_API_TOKEN>) sc.api_call('channels.invite', channel=<channel_id>, user=<user_id>)

    这将邀请机器人加入频道。如果您想自动邀请您的机器人加入新频道,您可以查看 API 中的事件侦听器,该 API 位于 https://api.slack.com/rtm

    只要您允许将您的 API_TOKEN 用于该目的,它似乎就可以根据需要工作,尽管不太方便。

    【讨论】:

      【解决方案3】:

      我实际上并没有尝试过,但我希望您可以首先代表实际用户(例如,您自己)调用 channels.join,然后以该用户的身份调用 channels.invite 以将机器人添加到该频道。我希望这是允许的,然后它将允许机器人与该频道进行交互。这样你就可以自动化一切。

      【讨论】:

        猜你喜欢
        • 2017-04-27
        • 1970-01-01
        • 1970-01-01
        • 2017-09-02
        • 2017-03-18
        • 2021-10-20
        • 1970-01-01
        • 2022-12-07
        • 1970-01-01
        相关资源
        最近更新 更多