-
-
Save krazylearner/3c68679806152c7189d92dbbb666dcd0 to your computer and use it in GitHub Desktop.
alexa-sdk how to use it with an express https server
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'use strict'; | |
const express = require('express'); | |
const https = require('https'); | |
const fs = require('fs'); | |
const bodyParser = require('body-parser'); | |
const context = require('aws-lambda-mock-context'); | |
// lambda.js contains the lambda function for Alexa as in https://github.com/alexa/alexa-skills-kit-sdk-for-nodejs | |
var lambda = require('./lambda'); | |
const SERVER_PORT = 443; | |
const SERVER_IP = <YOUR_IP>; | |
// SSL Certificate stuff for https | |
var privateKey = fs.readFileSync(<PATH TO YOUR privateKey file>, 'utf8'); | |
var certificate = fs.readFileSync(<PATH TO YOUR certificate file>, 'utf8'); | |
var ca = fs.readFileSync(<PATH TO YOUR crt file>).toString(); | |
var credentials = {key: privateKey, cert: certificate,ca:ca}; | |
const app = express(); | |
app.use(bodyParser.json({ type: 'application/json' })); | |
// your service will be available on <YOUR_IP>/alexa | |
app.post('/alexa/', function (req, res) { | |
var ctx = context(); | |
lambda.handler(req.body,ctx); | |
ctx.Promise | |
.then(resp => { return res.status(200).json(resp); }) | |
.catch(err => { console.log(err);//add your error handling stuff }) | |
}); | |
var httpsServer = https.createServer(credentials, app); | |
httpsServer.listen(REST_PORT, SERVER_IP,function () { | |
console.log('Alexa Skill service ready on ' + SERVER_IP+":"+SERVER_PORT+" via https. Be happy!"); | |
}); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment