AWS Lambda处理Slack命令返回JSON而非文本的问题排查与修复
问题原因
- 你的Lambda响应未添加
Content-Type: application/json请求头,Slack将返回的JSON字符串识别为纯文本,因此直接原样展示。 - AWS Lambda通过API Gateway向Slack返回响应时,必须明确指定内容类型为JSON,否则Slack不会自动解析字符串中的消息结构。
修复方法
给Lambda的返回结果添加headers字段,明确指定内容类型为JSON,修改后的代码如下:
export const handler = async (event) => { return { statusCode: 200, headers: { "Content-Type": "application/json" }, body: JSON.stringify({ "response_type": 'in_channel', "text": 'hello' }) }; };
修改后Slack会正确识别返回内容为JSON格式,自动解析并显示预期的"hello"消息。
内容的提问来源于stack exchange,提问作者Dania De la Puente
相关产品推荐
相关产品推荐

