【问题标题】:Alexa skill Rest APIAlexa技能休息API
【发布时间】:2016-07-12 00:14:41
【问题描述】:

我们可以使用 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 alexa-skills-kit alexa-skill alexa-slot alexa-app


【解决方案1】:

当然可以。事实上,当您在 Alexa 开发人员门户中创建技能时,您可以选择。需要注意的是,您将需要管理自己的 TLS 证书,并且必须根据用户的位置确保延迟/响应能力良好。

如果您想进一步探索,可以使用 Amazon 的 Java 代码示例。可以在以下位置找到它们:https://github.com/amzn/alexa-skills-kit-java

【讨论】:

【解决方案2】:

您绝对可以设置一个 RESTful 服务 API 以与 Alexa 一起使用。

而且,如果您在 Azure 中进行设置,您甚至不需要创建自己的证书。

【讨论】:

  • 这就是我需要做的。为此我使用什么 Azure 服务?
  • 您需要创建它。您可以在 Visual Studio 中创建一个 ASP.NET Web API 项目,然后将其发布到 Azure。
【解决方案3】:

您可以使用 rest api 作为 alexa 技能的端点。 api会通过以下方式调用

[Configured_URL]>/**alexa/[intent]**

其中 [Configured_URL] - 是在亚马逊站点中配置用于调用的 url 端点

[intent] - 是意图的名称

您应该相应地托管您的服务

https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/developing-an-alexa-skill-as-a-web-service

https://iwritecrappycode.wordpress.com/2016/04/01/create-an-alexa-skill-in-node-js-and-hosting-it-on-heroku/

【讨论】:

  • 我不熟悉这种“已配置的 url”语法 - 并非所有的 alexa 请求都以这种方式进入端点。事实上,Alexa POST 到的端点完全可以在 Amazon 开发人员控制台中针对该技能进行配置。
  • 只有一个端点,并且您将意图作为请求的一部分发布,因此 Alexa REST url 看起来更像这样:mydomain/api/alexa Amazon 开发门户向您展示了请求的结构需要是什么.我是用 C# 编写的,但它可以是任何输出 json 的语言。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-21
  • 2021-02-27
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多