为了账号安全,请及时绑定邮箱和手机立即绑定

使用 views.push 时 Slack 模态视图立即关闭

使用 views.push 时 Slack 模态视图立即关闭

阿波罗的战车 2022-07-05 19:08:59
我正在使用 Python 和 Flask 创建一个 Slack 应用程序。该应用程序使用具有两个视图的 Slack 模式:第一个在给出斜杠命令时打开,第二个应在用户按下第一个视图上的提交按钮时打开。当我运行它时,第一个视图正确打开。但是,当我尝试推送第二个视图时,它会立即打开然后关闭,在没有用户任何交互的情况下恢复到第一个视图。我尝试使用notify_on_close标志来查看第二个视图是否由于某种原因被关闭,但是在第二个视图关闭后我没有收到任何“表单关闭”消息。这是发生此问题的示例:@app.route('/slash_command', methods=['POST'])def open_modal():    trigger_id = request.form['trigger_id']    sc.views_open(trigger_id=trigger_id, view=views.first_view)    return '', 200@app.route('/actions', methods=['POST'])def action_endpoint():    payload = json.loads(request.form['payload'])    callback_id = payload['view']['callback_id']    trigger_id = payload['trigger_id']    # Push the second view if the first view is submitted    if callback_id == 'first_view':        sc.views_push(trigger_id=trigger_id, view=views.second_view)    return '', 200我的观点很简单:first_view = {    "type": "modal",    'callback_id': 'first_view',    "title": {        "type": "plain_text",        "text": "First View"    },    "submit": {        "type": "plain_text",        "text": "Submit"    },    "close": {        "type": "plain_text",        "text": "Cancel"    },    'blocks': []}second_view = {    'type': 'modal',    'callback_id': 'second_view',    'title': {        'type': 'plain_text',        'text': 'Second View',    },    'submit': {        'type': 'plain_text',        'text': 'Submit'    },    'close': {        'type': 'plain_text',        'text': 'Cancel'    },    'blocks': []}
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

Slack 支持通过解释上述代码推送一个新视图然后返回 200 响应来解决此问题,Slack 将其解释为关闭当前视图的请求。通过如下更新,我能够使代码正常工作:


# Push the second view if the first view is submitted

if callback_id == 'first_view':

    return {

        'response_action': 'push',

        'view': views.second_view

    }


return '', 200


查看完整回答
反对 回复 2022-07-05
  • 1 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号