Slack使用Amazon Lex设置事件订阅URL时返回错误

时间:2018-09-22 07:05:49

标签: amazon-web-services slack slack-api aws-lex

我在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默认情况下应该提供响应。我在这里做错什么了吗?任何线索都会有所帮助。

谢谢。

2 个答案:

答案 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);
    }
};