【问题标题】:send message from bot to direct message after typing /slash command输入 /slash 命令后从机器人发送消息到直接消息
【发布时间】:2021-03-21 04:04:34
【问题描述】:

我正在尝试制作 SlackBot,如果我在某个公共频道中给他打电话,它可以正常工作,但是当我在任何直接频道中给他打电话(输入斜杠命令)时,我会收到“服务器响应:{'ok':错误,'错误':'channel_not_found'}”。在我邀请我的机器人的公共频道中,它工作正常,但如果我在任何 DM 频道中键入“/my-command”,我会在我的机器人的单独 DM 频道中收到响应。我希望在我输入命令的那个 DM 通道中收到这些响应。 这是我的代码的一部分:

if slack_command("/command"):
    self.open_quick_actions_message(user_id, channel_id)
    return Response(status=status.HTTP_200_OK)

def open_quick_actions_message(self, user, channel):
    """
        Opens message with quick actions.
    """
    slack_template = ActionsMessage()
    message = slack_template.get_quick_actions_payload(user=user)
    client.chat_postEphemeral(channel=channel, user=user, **message)

Here are my Event Eubscriptions

Here are my Bot Token Scopes

谁能帮我解决这个问题?

【问题讨论】:

    标签: python-3.x django bots slack


    【解决方案1】:

    我已经解决了我的问题。也许它会在未来帮助某人。我已将有效负载作为即时响应发送,如 docs 中所示,response_type 默认设置为 ephemeral

    我的代码部分现在看起来像这样:

    if slack_command("/command"):
        res = self.slack_template.get_quick_actions_payload(user_id)
        return Response(data=res, status=status.HTTP_200_OK)
    else:
        res = {"text": "Sorry, slash command didn't match. Please try again."}
        return Response(data=res, status=status.HTTP_200_OK)
    

    我还有一个操作按钮,我也需要收到一些响应。为此,我使用了response_url,这里是docsrequests 库。

    部分代码在这里:

    if action.get("action_id", None) == "personal_settings_action":
        self.open_personal_settings_message(response_url)
    
    def open_personal_settings_message(self, response_url):
        """
            Opens message with personal settings.
        """
        message = self.slack_template.get_personal_settings_payload()
        response = requests.post(f"{response_url}", data=json.dumps(message))
        try:
            response.raise_for_status()
        except Exception as e:
            log.error(f"personal settings message error: {e}")
    

    P。 S. 这是我在 StackOverflow 上的第一个问题和第一个答案,所以请不要苛责我。

    【讨论】:

      猜你喜欢
      • 2018-09-25
      • 2018-04-29
      • 2021-09-10
      • 2020-08-25
      • 2021-05-08
      • 2021-05-05
      • 2019-06-13
      • 2019-06-27
      • 2021-08-19
      相关资源
      最近更新 更多