Download the PHP package froodley/amazon-alexa-php without Composer
On this page you can find all versions of the php package froodley/amazon-alexa-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download froodley/amazon-alexa-php
More information about froodley/amazon-alexa-php
Files in froodley/amazon-alexa-php
Package amazon-alexa-php
Short Description Amazon Alexa interface for PHP - XSS Filtering, Improved Testability
License MIT
Informations about the package amazon-alexa-php
Amazon Alexa PHP Library
This library provides provides a convenient interface for developing Amazon Alexa Skills for your PHP app.
It represents a breaking change (and is forked) from jakobsuchy/amazon-alexa-php
The most important changes are the addition of XSS purification and some basic Doctrine validation, and making everything stateless, SRP and more testable
Usage
Install via composer: composer require froodley/amazon-alexa-php
Requests
When Amazon Alexa triggers your skill, a HTTP request will be sent to the URL you specified for your app.
You can get the JSON
body of the request like so:
The library expect raw request data, not parsed JSON as it needs to validate the request signature.
You can determine the type of the request with instanceof
, e.g.:
Certificate validation
By default the system validates the request signature by fetching Amazon's signing certificate and decrypting the signature. You need CURL to be able to get the certificate. No caching is done but you can override the Certificate class easily if you want to implement certificate caching yourself based on what your app provides:
Here is a basic example:
And then in your app, use the setCertificateDependency function:
Application Id validation
The library will automatically validate your Application Id matches the one of the incoming request - you don't need to do anything for that. If and only if you wish to change how the validation happens, you might use a similar scenario to the certificate validation - provide your own Application class extending the \Alexa\Request\Application and providing a validateApplicationId() function as part of that. Pass your application to the Request library in a same way as the certificate:
Response
You can build an Alexa response with the Response
class. You can optionally set a card or a reprompt too.
Here's a few examples.
To output the response, simply use the ->render()
function, e.g. in Laravel you would create the response like so:
In vanilla PHP:
All versions of amazon-alexa-php with dependencies
ext-curl Version *
doctrine/orm Version ^2.5.6
symfony/validator Version ^3.2.6
ezyang/htmlpurifier Version ^4.7