amazon-web-services - Slack 在使用 Amazon Lex 设置事件订阅 URL 时返回错误
问题描述
我在 AWS Lex 中创建了一个机器人,并尝试将它与 Slack 集成。我创建了一个 Slack 应用程序并按照中提到的文档进行操作 -
https://docs.aws.amazon.com/lex/latest/dg/slack-bot-association.html
但是,在尝试与 Lex 回发 URL 集成时,我收到一条错误消息
Your URL didn't respond with the value of the challenge parameter.
Our Request:
POST
"body": {
"type": "url_verification",
"token": "VbODUleNdk2hieCvDwlScrQF",
"challenge": "HRUXnK6YYLpx5U1s9AiADZgA0BAhWuTzfjAAzLEJIw1zz4GfuMAb"
}
Your Response:
"code": 200
"error": "challenge_failed"
"body": {
}
据我所知,默认情况下 Lex 应该提供响应。我在这里做错了吗?任何线索都会有所帮助。
提前致谢。
解决方案
遇到了同样的问题。Slack 向我的端点发送的 POST 请求不是我的函数的设计目的。我按照 https://api.slack.com/tutorials/events-api-using-aws-lambda上的教程进行操作,必须添加一行:
exports.handler = (data, context, callback) => {
data = JSON.parse(data.body); // added this line
switch (data.type) {
case "url_verification": verify(data, callback); break;
case "event_callback": process(data.event, callback); break;
default: callback(null);
}
};
推荐阅读
- android - 我似乎无法使导航抽屉工作:如何解决这个问题?
- jinja2 - 如何动态显示 PIL 图像
- azure - 无法将 esp8266 设备连接到 azure IoT hub
- java - 有什么方法可以在 Java 哈希图中通过键获取特定条目(已插入多个值)?
- java - 时事通讯如何
- ios - 在 viewDidLoad() 中获取视图的渲染边界
- sql - SQL join 大于/小于 then
- docker - Dockerfile FROM --platform 选项
- javascript - 使用 React Context 时如何避免意外渲染?
- unity3d - 从相机到播放器的 RayCastAll 不工作