Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dadeather/amazonalexaservice

A PHP library for handling amazons alexa skill requests.
https://github.com/dadeather/amazonalexaservice

amazon-alexa-skill composer composer-package jms-serializer php

Last synced: about 2 months ago
JSON representation

A PHP library for handling amazons alexa skill requests.

Awesome Lists containing this project

README

        

## AmazonAlexaService

Simple kept service for parsing and creating requests and responses for the communication between amazons webservice and your application based on amazons alexa skill capabilities.

### Add to your project:
```
composer require dadadev/amazonalexaservice
```

### Simple Usage

Full Example:
```
amazonAlexaService = $amazonAlexaService;
}

public function getIntentName(): string
{
return 'myIntent';
}

public function handleIntent(Request $request): ?Response
{
return $this->amazonAlexaService->createOutputSpeechResponse('Hello World!');
}
}

$serializer = SerializerBuilder::create()->build();
$requestValidationService = new RequestValidationService();
$amazonAlexaService = new AmazonAlexaService($serializer);

$jsonRequest = file_get_contents('php://input');
$request = $amazonAlexaService->getAlexaRequest($jsonRequest);

try {
$requestValidationService->validateIncomingRequest(
'YOUR APP ID HERE',
$_SERVER['HTTP_SIGNATURECERTCHAINURL'],
$_SERVER['HTTP_SIGNATURE'],
$jsonRequest,
$request
);
} catch (\Exception | ValidationException $exception) {
http_response_code(404);
exit(json_encode([
'status' => 'failed',
'message' => $exception->getMessage(),
'code' => $exception->getCode(),
]));
}

$response = $amazonAlexaService->handleIntents($request, new SampleIntentHandler($amazonAlexaService));

if ($response) {
header('Content-Type: application/json');
echo $amazonAlexaService->createJsonFromResponse($response);
exit();
}

http_response_code(404);
exit(json_encode([
'status' => 'failed',
'message' => 'Request was not handled, or returned empty reponse.',
'code' => '404',
]));
```