如何开始将Alexa与NodeJS代码集成?

时间:2019-01-29 06:08:21

标签: node.js alexa alexa-skills-kit

我有一个用NodeJS和Angular2 +构建的应用程序。我想将NodeJs部分与Alexa集成在一起。我已经浏览了代码,但是发现的只有很多Intents函数,然后我甚至尝试查看以下github链接

https://github.com/alexa/skill-sample-nodejs-petmatch/blob/master/lambda/custom/index.js

但是我不知道从哪里开始。

NodeJs代码-

seekapi.service.js

// Require Neo4j

var neo4j = require('neo4j-driver').v1;

var path = require('path');
var logger = require('morgan');
var bodyParser = require('body-parser');
var express = require('express');

var router = express.Router();

var app = express();


// Create Driver

 const driver = new neo4j.driver("bolt://localhost:11001", neo4j.auth.basic("neo4j", "lib1"));



app.set('views', path.join(__dirname, 'views'));

 app.use(logger('dev'));
 app.use(bodyParser.json());
 app.use(bodyParser.urlencoded({ extended: false }));
 app.use(express.static(path.join(__dirname, 'public')));


var session = driver.session();
var request = require('request');

router.post('/', seekAPI);


 module.exports = router;


//working code below


function seekAPI(req, res) { 

    console.log("INSIDE NODE JS CONTROLLER OF seekAPI");

    console.log("BODY IS ", req.body);

        session

           .run(`MATCH p=()-[r:API]->() RETURN p;`)
           .then(function (result){

             res.send(result); 
               result.records.forEach(function(record){
                   console.log("record = ", record);


               });
               res.send(result); 
           })      
           .catch(function(err){
            console.log("inside catch = " + err);
        })

        session.close();   
}


console.log("Inside seekAPI-controller.js")

1 个答案:

答案 0 :(得分:1)

由于已经在Angular应用中编写了代码库(API部分),因此可以在Web服务上公开API。该Web服务应符合contract given by Amazon。准备好Web服务后,请在Alexa console中配置Web服务URL,然后完成操作,立即在此处开始调用Alexa。

优点是,您可以使用现有应用程序部署,而不必在AWS Lambda中再次运行相同的API。

使用Web服务方法,您甚至可以使用ngrok https端点在本地计算机上调试技能。

我更喜欢这种Web服务方式,因为我可以在本地开发所有东西并部署在我的基础架构中。