从父页面发送消息到AWS Lex Bot

问题描述 投票:1回答:1

我试图限制我的Lex Bot只显示某个用户可以访问的SQL搜索结果。例如,如果用户A只能访问属于用户A的记录,则Bot将不允许用户A搜索属于用户B的记录。

现在,我已经在我通过AWS S3托管的网站上设置了我的Bot。我现在面临的问题是从父页面(我在S3中设置的网站)获取用户的登录信息,并将其发送到我的Lex Bot(我作为Iframe嵌入)。

登录页面是通过Google登录完成的,该登录在我的SQL数据库中保存了访问令牌。我想知道如何将此访问令牌发送到我的Lex Bot,以便我可以通过Lambda对其进行身份验证。 (我已经完成了Lambda部分,只需知道如何从父页面获取消息。理想情况下,这部分发生在用户与Bot对话之前,这意味着回发消息,因此用户无法看到此信息)

我试过的事情: - 我尝试过单独的lambda函数来处理这部分,但实际上并不知道如何将它集成到网站中。 - 我尝试过使用事件监听器但不太确定该消息是发送到机器人还是仅仅是IFrame。

现在,我没有想法,任何帮助将不胜感激。

aws-lambda amazon-lex
1个回答
1
投票

我设法最终通过添加Javascript函数来发布消息。它看起来不太专业,但它确实有效。

function isBotMinimized() {
        return $('.' + lexWebUi.options.containerClass)
            .hasClass('lex-web-ui--minimize');
    }

    function sendMessage() {            
        return Promise.resolve()
            .then(function () {
                return !isBotMinimized() ||
                    lexWebUi.sendMessageToIframe({ event: 'toggleMinimizeUi' });
            })
            .then(function () {
                return lexWebUi.sendMessageToIframe({ event: 'postText', message: "Welcome"});
            })
            .then(function () { console.log('message succesfully sent'); })
            .catch(function (error) { console.error('error sending message ', error); });
    }
© www.soinside.com 2019 - 2024. All rights reserved.