All Projects → ericdaugherty → alexa-skills-kit-golang

ericdaugherty / alexa-skills-kit-golang

Licence: Apache-2.0 license
GoLang port of the Amazon Alexa Skills Kit

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to alexa-skills-kit-golang

Alexa Smarthome
Resources for Alexa Smart Home developers.
Stars: ✭ 496 (+933.33%)
Mutual labels:  alexa, alexa-skills-kit
Depressionai
Alexa skill for people suffering with depression.
Stars: ✭ 92 (+91.67%)
Mutual labels:  alexa, alexa-skills-kit
Alexa Skills Kit Sdk For Python
The Alexa Skills Kit SDK for Python helps you get a skill up and running quickly, letting you focus on skill logic instead of boilerplate code.
Stars: ✭ 678 (+1312.5%)
Mutual labels:  alexa, alexa-skills-kit
alexa-ruby
Ruby toolkit for Amazon Alexa service
Stars: ✭ 17 (-64.58%)
Mutual labels:  alexa, alexa-skills-kit
Alexaskillskit
Swift library to develop custom Alexa Skills
Stars: ✭ 160 (+233.33%)
Mutual labels:  alexa, alexa-skills-kit
Awesome Amazon Alexa
🗣Curated list of awesome resources for the Amazon Alexa platform.
Stars: ✭ 458 (+854.17%)
Mutual labels:  alexa, alexa-skills-kit
Alexa Myqgarage
Use your Echo to control your Chamberlain MyQ Garage door
Stars: ✭ 63 (+31.25%)
Mutual labels:  alexa, alexa-skills-kit
serverless-alexa-skills
Manage your Alexa Skills with Serverless Framework
Stars: ✭ 69 (+43.75%)
Mutual labels:  alexa, alexa-skills-kit
Flask Ask
Alexa Skills Kit for Python
Stars: ✭ 1,877 (+3810.42%)
Mutual labels:  alexa, alexa-skills-kit
Alexa Voice Service.js
Library for interacting with Alexa Voice Service (AVS) in the browser.
Stars: ✭ 123 (+156.25%)
Mutual labels:  alexa, alexa-skills-kit
Alexa Skill Kit
Library for effortless Alexa Skill development with AWS Lambda
Stars: ✭ 278 (+479.17%)
Mutual labels:  alexa, alexa-skills-kit
Awesome Bots
The most awesome list about bots ⭐️🤖
Stars: ✭ 2,864 (+5866.67%)
Mutual labels:  alexa, alexa-skills-kit
alexa-apis-for-python
The Alexa APIs for Python consists of python classes that represent the request and response JSON of Alexa services. These models act as core dependency for the Alexa Skills Kit Python SDK (https://github.com/alexa/alexa-skills-kit-sdk-for-python).
Stars: ✭ 82 (+70.83%)
Mutual labels:  alexa, alexa-skills-kit
ask-toolkit-for-vscode
ASK Toolkit is an extension for Visual Studio Code (VSC) that that makes it easier for developers to develop and deploy Alexa Skills.
Stars: ✭ 90 (+87.5%)
Mutual labels:  alexa, alexa-skills-kit
ask-console-chrome-extension
⚡️ Chrome Extension for faster testing in the Alexa Skill Simulator
Stars: ✭ 37 (-22.92%)
Mutual labels:  alexa, alexa-skills-kit
Alexa Skills Kit Sdk For Java
The Alexa Skills Kit SDK for Java helps you get a skill up and running quickly, letting you focus on skill logic instead of boilerplate code.
Stars: ✭ 758 (+1479.17%)
Mutual labels:  alexa, alexa-skills-kit
Azure4Alexa
Create and Host Alexa Custom Skills using .NET and Azure
Stars: ✭ 48 (+0%)
Mutual labels:  alexa, alexa-skills-kit
cookiecutter-flask-ask
Cookiecutter template for Alexa skills based on the fantastic Flask-Ask framework 🍾🗣❓
Stars: ✭ 51 (+6.25%)
Mutual labels:  alexa, alexa-skills-kit
Virtual Alexa
🤖 Easily test and debug Alexa skills programmatically
Stars: ✭ 106 (+120.83%)
Mutual labels:  alexa, alexa-skills-kit
Bst
🔧 Bespoken Tools - Tools for making voice apps faster and better
Stars: ✭ 193 (+302.08%)
Mutual labels:  alexa, alexa-skills-kit

ericdaugherty/alexa-skills-kit-golang

alexa-skills-kit-golang is a lightweight port of the Amazon alexa-skills-kit-java SDK and Samples.

License godoc

Usage

This explanation assumes familiarity with with AWS Documentation. Please review Developing an Alexa Skill as a Lambda Function before proceeding. This SDK addresses some of the steps documented here for you, but you should be familiar with the entire process.

The samples directory provides example usage.

The Alexa struct is the initial interface point with the SDK. Alexa must be initialized first. The struct is defined as:

type Alexa struct {
    ApplicationID       string
    RequestHandler      RequestHandler
    IgnoreApplicationID bool
    IgnoreTimestamp     bool
}

The ApplicationID must match the ApplicationID defined in the Alexa Skills

The RequestHandler is an interface that must be implemented, and is called to handle requests.

IgnoreApplicationID and IgnoreTimestamp should be used during debugging to test with hard-coded requests.

Requests from Alexa should be passed into the Alexa.ProcessRequest method.

func (alexa *Alexa) ProcessRequest(context context.Context, requestEnv *RequestEnvelope) (*ResponseEnvelope, error)

This method takes the incoming request and validates it, and the calls the appropriate callback methods on the RequestHandler interface implementation.

The ResponseEnvelope is returned and can be converted to JSON to be passed back to the Alexa skill.

RequestHandler interface is defined as:

type RequestHandler interface {
	OnSessionStarted(context.Context, *Request, *Session, *Context, *Response) error
	OnLaunch(context.Context, *Request, *Session, *Context, *Response) error
	OnIntent(context.Context, *Request, *Session, *Context, *Response) error
	OnSessionEnded(context.Context, *Request, *Session, *Context, *Response) error
}

For a summary of these methods, please see the Handling Requests Sent By Alexa documentation.

You can directly manipulate the Response struct, but it is not initialized by default and use of the connivence methods is recommended.

These methods include:

func (r *Response) SetSimpleCard(title string, content string)
func (r *Response) SetStandardCard(title string, text string, smallImageURL string, largeImageURL string)
func (r *Response) SetLinkAccountCard()
func (r *Response) SetOutputText(text string)
func (r *Response) SetOutputSSML(ssml string)
func (r *Response) SetRepromptText(text string)
func (r *Response) SetRepromptSSML(ssml string)

And more. These methods handle initializing any required struts within the Response struct as well as setting all required fields.

samples

HelloWorld

Limitations

This version does not support use as a standalone web server as it does not implement any of the HTTPS validation. It was developed to be used as an AWS Lambda function using AWS Labda Go support.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].