我已经构建了一个 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/