3

我有一个从三个 api 获取信息的机器人。现在,我将所有这些信息汇总到消息中并一次性发送:

{
sessionAttributes,
dialogAction: {
   type: 'Close',
   'Fulfilled',
   message
}

有没有办法在我收到信息时发送信息?最终的结果将是三个不同的消息一个接一个,没有用户的任何输入。

4

1 回答 1

2

这在 Lex 本身是不可能的。AWS Lex 遵循请求/响应模型,因此只会处理与用户请求直接相关的响应。正如您在问题中所述,推荐的方法是聚合。

但是,根据您的集成策略,您可以通过绕过 Lex 并将结果从您的 API 直接发送给用户来发送多条消息。

例如

  1. 用户:“嘿 Lex。拿我的东西”
  2. 莱克斯
    1. 异步调用每个 API
    2. 回复用户:“我现在就发给你”
  3. API 1 给用户:“这是结果 1”
  4. 给用户的 API 2:“这是结果 2”

该策略适用于 Slack 等集成,其中可以通过同一渠道从多个来源接收消息。

于 2017-08-16T19:31:58.207 回答