Alexa技能文档最终将允许您将webhooks发送到https
端点。但是SDK只记录了lambda样式的alexa-sdk
用法。如何在没有任何抽象Lambda的情况下在自己的服务器上运行Alexa应用程序?是否有可能包装event
和context
对象?
您已经可以使用自己的端点了。创建新技能时,在配置选项卡中,只需选择HTTPS并提供https端点。 ASK将调用您的端点,您可以在其中运行任何您想要的东西(提示,检查ngrok.com以隧道到您自己的开发机器)。关于event
和context
物体;您的端点将收到event
对象信息。你不需要任何context
对象,只是让你与Lambda特定的东西(http://docs.aws.amazon.com/lambda/latest/dg/python-context-object.html)进行交互。只要确保你遵守ASK的(未记录的)超时,你就可以了。
这是一种方法,只需要对您的技能代码进行少量更改:
exports.handler = function (event, context) {
使用类似的东西:
exports.myAppName = function (funcEvent, res) {
var event = funcEvent.body
// since not using Lambda, create dummy context with fail and succeed functions
const context = {
fail: () => {
res.sendStatus(500);
},
succeed: data => {
res.send(data);
}
};