首页 文章

亚马逊Lex从Twilio的java lambda函数处理程序中获取传入的SMS号码?

提问于
浏览
0

我创建了一个lex短信聊天机器人并将其发布到Twilio SMS Channels . 在我的java lambda fulfillment handleRequest函数中,我收到2个参数:一个Input对象和一个Context . 输入有一些类型的系统生成userId,但我需要来自Twilio的传入短信的电话号码 .

我已按照以下说明将Twilio配置为通过webhook调用Lex:

http://docs.aws.amazon.com/lex/latest/dg/twilio-bot-association.html#twilio-bot-assoc-create-assoc

我在Lex和Twilio之间使用系统创建的webhook回调网址,并希望尽可能避免编写我自己的Lex-Twilio与Gateway API和lambda .

我想我在Twilio中错过了一个配置,可能会发送给Lex吗?我没有设置任何TwilML应用程序或任何东西,只是将SMS号码链接到我的webhook回调网址为lex . 一切正常,除了获取传入的短信号码 .

UPDATE:
我的输入对象和上下文在我的java lambda函数中耗尽了所有可能性 . 我想在Java中没有办法从twilio获得有效载荷 . 我尝试切换到输入流处理程序,但仍然只有文档中定义的输入格式:http://docs.aws.amazon.com/lex/latest/dg/lambda-input-response-format.html
我不得不咬紧牙关, Build 自己的网关API和节点处理程序 . 它只是一个位于lex之前的层,它将twilio转换为lex输入格式,反之亦然 . 它使用传入的电话号码更新userId .
本教程在执行此操作时非常有用:
https://aws.amazon.com/blogs/ai/integrate-your-amazon-lex-bot-with-any-messaging-service/

获得一个额外的领域需要做很多工作,但它确实为我提供了在未来更轻松地切换SMS提供商的灵活性 .

1 回答

  • 0

    我不确定是什么让你无法获得lambda函数中的用户电话号码 . 您始终可以从lambda函数中的输入事件中获取'userId'字段中的发件人电话号码 . 您可以参考documentation获取更多信息 .

相关问题