python - Slack app_home_opened 事件调用两次

标签 python events slack slack-api

我已经构建了一个 slack 应用程序。但是对于 onbording 过程 slack app_home_opened 事件调用两次。 我检查过这两个事件几乎同时触发。 代码

from slackeventsapi import SlackEventAdapter

slack_events_adapter = SlackEventAdapter(
    Constants.ENV["SLACK_APP_SIGNING_SECRETS"], "/slack/events", app
)


@slack_events_adapter.on("app_home_opened")
def app_home_opened(event_data):
    threading.Thread(target=handleOnBording).start()
    return "", 200


第一个事件负载:

{
    'token': '*****',
    'team_id': 'T311FQLU8CT',
    'api_app_id': 'K711C41FET3',
    'event': {
        'type': 'app_home_opened',
        'user': 'F511MQLU8KB',
        'channel': 'E211HGWLUKG',
        'tab': 'messages',
        'event_ts': '1590756776.195938'
    },
    'type': 'event_callback',
    'event_id': 'Ev014P7CG7N0',
    'event_time': 1590756776
}

第二个事件负载:

{
    'token': '*******',
    'team_id': 'T311FQLU8CT',
    'api_app_id': 'K711C41FET3',
    'event': {
        'type': 'app_home_opened',
        'user': 'F511MQLU8KB',
        'channel': 'E211HGWLUKG',
        'tab': 'messages',
        'event_ts': '1590756776.212203'
    },
    'type': 'event_callback',
    'event_id': 'Ev014FLBULHK',
    'event_time': 1590756776
}

我正在使用 slackeventsapi python 包与 slack 交互。我知道如果我们在 3 秒内没有响应,slack 会重试请求,但我会在 3 秒内响应每个请求。

最佳答案

这可能不是这个问题的预期解决方案,但是: 我已经就此联系了 Slack 团队,结果证明这是一个错误,他们也意识到了这一点,尽管他们似乎没有确定修复时间。

考虑到这一点,恐怕如果您遇到这个问题,您应该考虑在您的事件 API 中实现一个解决方法,这将保证您只会处理该系列中的一个事件。根据您的用例和基础架构(数据库、框架等),实际解决方案可能会有所不同。

关于python - Slack app_home_opened 事件调用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62088445/

相关文章:

c# - 是否可以在不创建派生类的情况下将数据传递给 EventArgs?

javascript - 用户单击关闭按钮后取消 HTA 关闭

Python PLY 零次或多次出现的解析项

python - 在 python 中完成后如何关闭我的程序

python - 将日期时间转换为时间戳并再次转换回来

vba - 无法使用自定义事件处理程序捕获 AfterUpdate 事件

slack - 我可以强制 Slack 每次都显示用户图标吗?

javascript - 使用 React 和 Slack api 进行 Slack 邀请

bash - 在 Ansible 中执行带参数的 bash 脚本

python - 如何在 PyCharm 中正确设置 pipenv?