托管我自己的服务(.NET) - Alexa的有效回复是什么?

时间:2017-09-26 19:42:09

标签: alexa-skills-kit

我在Azure上托管自己的服务(HTTPS) - 我选择了“我的端点是带有通配符证书的子域”

我正在使用Alexa.NET来制作响应。

我可以验证模拟器是否正在击中我的端点(我进行了远程调试并看到了断点被击中)并且我知道我的端点正在返回(我在Postman中尝试过)

{
    "Version": "1.0",
    "SessionAttributes": null,
    "Response": {
        "OutputSpeech": {
            "Type": "PlainText",
            "Text": "test successful"
        },
        "Card": null,
        "Reprompt": null,
        "ShouldEndSession": true,
        "Directives": []
    } 
}

我找不到任何关于响应应该是什么样的文档。我想我可以尝试用lambda函数创建相同的东西......

对于我可以尝试的内容,任何人都有任何建议吗?托管我自己服务的整个过程非常令人沮丧...

2 个答案:

答案 0 :(得分:1)

请在此处找到示例回复格式https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/alexa-skills-kit-interface-reference#response-body-syntax

{
  "version": "string",
  "sessionAttributes": {
    "string": "<object>"
  },
  "response": {
    "outputSpeech": {
      "type": "string",
      "text": "string",
      "ssml": "string"
    },
    "card": {
      "type": "string",
      "title": "string",
      "content": "string",
      "text": "string",
      "image": {
        "smallImageUrl": "string",
        "largeImageUrl": "string"
      }
    },
    "reprompt": {
      "outputSpeech": {
        "type": "string",
        "text": "string",
        "ssml": "string"
      }
    },
    "directives": [
      {
        "type": "Display.RenderTemplate",
        "template": {
          "type": "string"
		  ...
        }
      },
      {
        "type": "AudioPlayer",
        "playBehavior": "string",
        "audioItem": {
          "stream": {
            "token": "string",
            "url": "string",
            "offsetInMilliseconds": 0
          }
        }
      },
      {
        "general": {
          "type": "VideoApp.Launch",
          "videoItem": {
            "source": "string",
            "metadata": {
              "title": "string",
              "subtitle": "string"
            }
          }
        }
      }
    ],
    "shouldEndSession": boolean
  }
}

答案 1 :(得分:0)

这是因为我的名字以大写字母开头。 Friggin Javascript序列化器......

但是感谢Vijay指向文档的指针。

在.NET mvc中,这就是你如何使属性名称小写:

return JsonConvert.SerializeObject(alexaSkillResponse, new JsonSerializerSettings {
    ContractResolver = new CamelCasePropertyNamesContractResolver()
});