Alexa 技能休息 API
Alexa skill Rest API
我们可以使用 Rest API 而不是使用 Lambda。我问的原因是因为我们收到了请求,我们知道 alexa 接受什么作为响应,我们知道它是 POST。因此,将所有这些连接到 REST API。我问的原因是整个项目都基于 Jax-RS,所以我们希望将它全部放在一个地方,而不使用 lamda 或任何东西。并不是说 lamda 没那么好。
所以alexa传递给Lambda的请求是:
{
"session": {
"sessionId": "SessionId.a82f0b92-3650-4d45-8f12-e030ffc10894",
"application": {
"applicationId": "amzn1.echo-sdk-ams.app.8f35038e-13ac-4327-8e4f-e5df52dc1432"
},
"attributes": {},
"user": {
"userId": "amzn1.ask.account.AFP3ZWPOS2BGJR7OWJZ3DHPKMOMNWY4AY66FUR7ILBWANIHQN73QGGUEQZ7YXOLC7NYVD3JPUAHAGUS4ZFXJ6ZMS4EHO2CJFPWFLWLYZLDP7S227ADI54A2ZMLZLDO5CXSIB47ELNY54S2M7FDNJFHTSU67B7HB3UZUN6OUUR5BYS3UBRSIPBG4IWRLHUN36NXDYBWUM3NMQZRA"
},
"new": true
},
"request": {
"type": "IntentRequest",
"requestId": "EdwRequestId.bfdb3c27-028b-4224-977a-558129808e9a",
"timestamp": "2016-07-11T17:52:55Z",
"intent": {
"name": "HelloWorldIntent",
"slots": {}
},
"locale": "en-US"
},
"version": "1.0"
}
回复:
{
"version": "1.0",
"response": {
"outputSpeech": {
"type": "PlainText",
"text": "Hello World!"
},
"card": {
"content": "Hello World!",
"title": "Greeter",
"type": "Simple"
},
"shouldEndSession": true
},
"sessionAttributes": {}
}
当然可以。事实上,当您在 Alexa Developer Portal 中创建技能时,您可以选择该选项。需要注意的是,您将需要管理自己的 TLS 证书,并且必须确保 latency/responsiveness 根据您用户的位置是合适的。
如果您想进一步探索,可以使用亚马逊的 Java 代码示例。它们可以在以下位置找到:https://github.com/amzn/alexa-skills-kit-java.
您绝对可以设置 RESTful 服务 API 以与 Alexa 一起使用。
而且,如果您在 Azure 中设置它,您甚至不需要创建自己的证书。
您可以使用休息 api 作为 alexa 技能的端点。 api 将按以下方式调用
[Configured_URL]>/**alexa/[intent]**
其中 [Configured_URL] - 是在亚马逊站点中配置的用于调用
的 url 端点
[intent]
- 是意图的名称
您应该相应地托管您的服务
我们可以使用 Rest API 而不是使用 Lambda。我问的原因是因为我们收到了请求,我们知道 alexa 接受什么作为响应,我们知道它是 POST。因此,将所有这些连接到 REST API。我问的原因是整个项目都基于 Jax-RS,所以我们希望将它全部放在一个地方,而不使用 lamda 或任何东西。并不是说 lamda 没那么好。
所以alexa传递给Lambda的请求是:
{
"session": {
"sessionId": "SessionId.a82f0b92-3650-4d45-8f12-e030ffc10894",
"application": {
"applicationId": "amzn1.echo-sdk-ams.app.8f35038e-13ac-4327-8e4f-e5df52dc1432"
},
"attributes": {},
"user": {
"userId": "amzn1.ask.account.AFP3ZWPOS2BGJR7OWJZ3DHPKMOMNWY4AY66FUR7ILBWANIHQN73QGGUEQZ7YXOLC7NYVD3JPUAHAGUS4ZFXJ6ZMS4EHO2CJFPWFLWLYZLDP7S227ADI54A2ZMLZLDO5CXSIB47ELNY54S2M7FDNJFHTSU67B7HB3UZUN6OUUR5BYS3UBRSIPBG4IWRLHUN36NXDYBWUM3NMQZRA"
},
"new": true
},
"request": {
"type": "IntentRequest",
"requestId": "EdwRequestId.bfdb3c27-028b-4224-977a-558129808e9a",
"timestamp": "2016-07-11T17:52:55Z",
"intent": {
"name": "HelloWorldIntent",
"slots": {}
},
"locale": "en-US"
},
"version": "1.0"
}
回复:
{
"version": "1.0",
"response": {
"outputSpeech": {
"type": "PlainText",
"text": "Hello World!"
},
"card": {
"content": "Hello World!",
"title": "Greeter",
"type": "Simple"
},
"shouldEndSession": true
},
"sessionAttributes": {}
}
当然可以。事实上,当您在 Alexa Developer Portal 中创建技能时,您可以选择该选项。需要注意的是,您将需要管理自己的 TLS 证书,并且必须确保 latency/responsiveness 根据您用户的位置是合适的。
如果您想进一步探索,可以使用亚马逊的 Java 代码示例。它们可以在以下位置找到:https://github.com/amzn/alexa-skills-kit-java.
您绝对可以设置 RESTful 服务 API 以与 Alexa 一起使用。
而且,如果您在 Azure 中设置它,您甚至不需要创建自己的证书。
您可以使用休息 api 作为 alexa 技能的端点。 api 将按以下方式调用
[Configured_URL]>/**alexa/[intent]**
其中 [Configured_URL] - 是在亚马逊站点中配置的用于调用
的 url 端点[intent]
- 是意图的名称
您应该相应地托管您的服务