我在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默认情况下应该提供响应。我在这里做错什么了吗?任何线索都会有所帮助。
谢谢。
答案 0 :(得分:0)
今天早上我遇到了,我想我会增加自己的经验。 Slack似乎在推动使用“验证令牌”来代替“签名密钥”,并声称它们是可互换的,但是令牌更安全。使用令牌时,我无法获得质询响应,但使用密钥时,它可以正常工作。
答案 1 :(得分:0)
遇到同一问题。 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);
}
};