Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/travello-gmbh/amazon-alexa-skill-skeleton
DEPRECATED PHP skeleton application for Amazon Alexa Skills based on Zend\Expressive
https://github.com/travello-gmbh/amazon-alexa-skill-skeleton
alexa alexa-sdk alexa-skill alexa-skill-setup deprecated php7 zend-expressive2 zend-framework
Last synced: 3 months ago
JSON representation
DEPRECATED PHP skeleton application for Amazon Alexa Skills based on Zend\Expressive
- Host: GitHub
- URL: https://github.com/travello-gmbh/amazon-alexa-skill-skeleton
- Owner: travello-gmbh
- Created: 2017-07-13T12:57:12.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-06-09T04:49:58.000Z (over 6 years ago)
- Last Synced: 2024-09-30T13:01:22.166Z (3 months ago)
- Topics: alexa, alexa-sdk, alexa-skill, alexa-skill-setup, deprecated, php7, zend-expressive2, zend-framework
- Language: PHP
- Homepage:
- Size: 211 KB
- Stars: 25
- Watchers: 6
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# DEPRECATED
This project is deprecated. Please move to https://github.com/phoice/phlexa-expressive-skeleton
# PHP skeleton application for Amazon Alexa Skills
With this PHP skeleton application you can easily setup your own PHP based Amazon Alexa
skills.## Dependencies
* PHP 7
* [Amazon Alexa Skill Library](https://github.com/travello-gmbh/amazon-alexa-skill-library)
* [Zend\Expressive micro-framework](https://docs.zendframework.com/zend-expressive/)This skeleton application is built with `Zend\Expressive`. For further details about the
`Zend\Expressive` micro-framework please refer to the official [docs](https://docs.zendframework.com/zend-expressive/).## Installation
Create a new project based on the skeleton application simply with Composer:
```
composer create-project travello-gmbh/amazon-alexa-skill-skeleton name-of-your-project
```## What you get
* A `Zend\Expressive` application setup for you to handle requests from Amazon Alexa and
to send your responses back to Alexa. The application is based on the
[Amazon Alexa Skill Library](https://github.com/travello-gmbh/amazon-alexa-skill-library)
* An Alexa application based on the Amazon Skill Library with a simple `HelloIntent` to
send some messages back to the user. It even contains a privacy page ready to use.
* A text helper for the Alexa Application to handle messages and titles for your skill.
* Signature validation is already built-in.
* Request logging is also setup for you.## Little tutorial
1. Create an account at the Amazon Developer Portal: https://developer.amazon.com/de/
2. Switch to the Alexa section and choose the Alexa Skills Kit.https://developer.amazon.com/edw/home.html#/skills
3. Add a new skill.
4. In the Skill information:
* Choose the "Custom Interaction Model" and a Language
* Enter a name for your skill "Hello World" and an invocation name "hello world"
* Save
5. On the Interaction model:
* Launch the Skill Builder
* Add an Intent with the Name "HelloIntent"
* Add "hello world" as a sample utterance and press enter
* Save the model
* Build the model
6. Proceed to the configuration:
* Select the HTTPS endpoint and pick a geographical region
* Now copy the URL of your server (see below) as the endpoint URL.
* Save
7. Proceed to the SSL Certificate:
* Choose the appropriate option.
* Save
8. Proceed to the Test:
* Now you can test your new skill.
9. Fill in the Publishing Information and Privacy & Compliance section when you finished
developing and testing the skill.
For further details please refer to the [docs](https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/getting-started-guide).## Setup your server
To get your skill running with PHP you need to setup your server which supports PHP 7.
Install the application and setup a SSL Certificate. For further details please refer to
the [docs](https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/registering-and-managing-alexa-skills-in-the-developer-portal#h2_ssl).If you have setup your server you can test the `Hello` example skill with the following
URL: https://your.server.com/hello/Just sent a POST request (for example with Postman) with these headers:
```
Content-Type: application/json
signaturecertchainurl : https://s3.amazonaws.com/echo.api/echo-api-cert-4.pem
signature: B/bxAdkIabkzsScfUsSfkz7pJrNLc1eoOOLk8qwG1ZudQRv7KcvyNa/91g74Zg3cRpifXEco4669MaZb4Cqs+vZ9TaTfftAMzy/Pc79AMuf1dU6GfUU7tp6cuavfqTD8cWlYN5TjEMCJbS1Y+VU929mX0edOZcZin7db6bOoZHu5gU8OSQ2r+6UMk88z5uuSjPyt9Du9vaC3Ics/Br30fEIplIgCt4y/UGRK76Rqo4L/DuNjty3o2mcU8bICK5xfZwCeH7b5UFwdjngtp8VfhKPtosZmCuWvMn+y9HoS06ll9cdI1FPLN9w7KwMZFY8UzTc+0GfAwntxzlowAwkPhQ==
```
To simulate the launch of the skill use this body:```
{
"session": {
"sessionId": "SessionId.test",
"application": {
"applicationId": "amzn1.ask.skill.place-your-skill-id-here"
},
"attributes": {},
"user": {
"userId": "amzn1.ask.account.test"
},
"new": true
},
"request": {
"type": "LaunchRequest",
"requestId": "EdwRequestId.test",
"locale": "de-DE",
"timestamp": "2017-01-26T20:38:55Z"
},
"version": "1.0"
}
```And to test the `HelloIntent` use this body:
```
{
"session": {
"sessionId": "SessionId.test",
"application": {
"applicationId": "amzn1.ask.skill.place-your-skill-id-here"
},
"attributes": {},
"user": {
"userId": "amzn1.ask.account.test"
},
"new": true
},
"request": {
"type": "IntentRequest",
"requestId": "EdwRequestId.test",
"locale": "de-DE",
"timestamp": "2017-01-27T20:29:59Z",
"intent": {
"name": "HelloIntent",
"slots": {}
}
},
"version": "1.0"
}
```## Configuration
Have a closer look at these configuration files for activating the signature validation
and the request logging feature.* `/config/autoload/travello-alexa.config.global.php`
* `/config/autoload/travello-alexa.config.development.php`