You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Slack Slash Command集成API Gateway后AWS Lambda无法获取event求助

问题根因

Slack斜杠命令发送的是application/x-www-form-urlencoded格式的表单数据,你当前拿到的postBody是原始的URL编码后的表单字符串,需要手动解析为结构化字典才能正常读取字段。

代码解决方案

修改Lambda代码,加入表单解析逻辑即可,示例如下:

from urllib.parse import parse_qs

def lambda_handler(event, context):
    # 读取原始表单字符串
    raw_post_body = event.get("postBody", "")
    # 解析为字典结构
    slack_raw_params = parse_qs(raw_post_body)
    # parse_qs默认返回值为列表,提取第一个元素得到最终参数
    slack_params = {key: value[0] for key, value in slack_raw_params.items()}
    
    # 可直接读取需要的参数,例:
    # 触发命令的用户ID:slack_params.get("user_id")
    # 斜杠命令后携带的文本:slack_params.get("text") 即你示例中的trigger
    
    return slack_params

可选优化配置

如果不想每次在代码里做解析,可以修改API网关的集成请求配置,新增application/x-www-form-urlencoded类型的请求映射模板,配置规则将表单结构直接转换为JSON再传递给Lambda,后续代码可以直接从event中读取对应字段,无需额外解析。


内容的提问来源于stack exchange,提问作者Mervin Hemaraju

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 20:06:03