我创建了我的lex bot并发布了它。我现在正试图从其他客户端测试它。
这个想法是从休息客户端开始工作,我可以使用其余的调用将其与我的自定义UI集成。
我正在根据此链接使用来自posttext的请求正文 http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html
当我从其他客户端使用此功能时,我收到了Missing Authentication Token。
使用的终点网址是https://runtime.lex.us-east-1.amazonaws.com
我是否应该在AWS Signature之类的授权标头中添加一些东西以使其工作。
答案 0 :(得分:10)
您需要在“授权”选项卡中包含AWS签名,其中包含有权运行Lex bot的IAM用户的详细信息。
步骤: 1.在AWS中转到IAM - >用户 - >添加用户
点击创建群组。
然后点击“创建用户” - 您的IAM用户已准备就绪。您将看到一个Access密钥ID和一个秘密访问密钥。
在邮递员的授权中,选择AWS签名并输入访问密钥ID和秘密访问密钥,以及AWS地区“us-east-1”和服务名称“lex”:
点击发送,您应该得到这样的回复:
{
"dialogState": "Fulfilled",
"intentName": "yourIntentName",
"message": "A response for that intent",
"responseCard": null,
"sessionAttributes": {},
"slotToElicit": null,
"slots": {}
}
<强>更新强>
另请注意 - POST网址格式为:
https://runtime.lex.us-east-1.amazonaws.com/bot/MyBotName/alias/myMyAlias/user/aUniqueUserID/text and it should be a POST
还要确保标题Content-Type是application / json,就像正文一样。