Giter Club home page Giter Club logo

alexa-skills-kit-for-go's Introduction

alexa-skills-kit-for-go: Create Amazon Alexa Go skills

GoDoc GoCard Build Status codecov License

This library is for building Amazon Alexa custom skills with Go. Unfortunately Amazon does only provide Alexa SDKs for building skills with Java and NodeJS.

Supported features:

There is a excellent API description what attributes must be included in responses and how to use the different interfaces in the AWS Request and Response JSON reference

Functionality

Amazon has an exhaustive description of the Alexa API including all the request and response objects. This library mapped the objects to structs and provides a way to interact with the Alexa Voice Service.

The connection is either via Web Service for self hosted custom skills or AWS Lambda Function for skill hosted at the AWS Lambda Function service. The second option is a easier deployment way because a developer has not to think about valid HTTPS certificates.

Examples

The examples show the usage of the library for different Alexa controllers. Every example resides in its own folder and does not reference other examples.

Usage:

  • Copy the Go file(s) from one of the examples folders (e.g. examples/helloworld/main.go) in a Go project
  • Run go get ./...
  • Run go build
  • Execute the binary!

The AWS Alexa skill setup is described in the original tutorials. The ApplicationID from the Alexa skill must be configured in the skill definition.

You need a HTTPS endpoint configured to run this skill or deploy the skill as a lambda method (coming soon).

Hello world

There is a hello world example which reimplemented the Amazon hello world example. You can see how to implement different Alexa intents and use a SessionEnded and LaunchRequest handler.

Hello world lambda

Same examples as 'hello world' but it can be deployed as Amazon Lambda expression.

If you are using windows like I am it may be tricky to build the zip file with the executable file. The AWS lambda library contains a tool called build-lambda-zip for building a .zip file with a executable binary. (See Building your function)

The Lambda Function can be deployed using the AWS CLI, AWS CloudFormation or the AWS Web console. For details see deploying Lambda Functions.

Hello buttons lambda

Example how to use the new Echo Gadget Buttons. The example is converted from the Amazon NodeJS Hello buttons tutorial.

The example deploys as a lambda function. The necessary steps to create the skill are described in the above tutorial.

Author

Patrick Steinig (@patst87)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.