首页 > 解决方案 > 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 应该提供响应。我在这里做错了吗?任何线索都会有所帮助。

提前致谢。

标签: amazon-web-servicesslackslack-apiaws-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);
    }
};

推荐阅读