Issues (51)

examples/card-response.php (1 issue)

1
<?php
2
3
declare(strict_types=1);
4
5
use MaxBeckers\AmazonAlexa\Helper\ResponseHelper;
6
use MaxBeckers\AmazonAlexa\Request\Request;
7
use MaxBeckers\AmazonAlexa\RequestHandler\Basic\HelpRequestHandler;
8
use MaxBeckers\AmazonAlexa\RequestHandler\RequestHandlerRegistry;
9
use MaxBeckers\AmazonAlexa\Validation\RequestValidator;
10
11
require '../vendor/autoload.php';
12
require 'Handlers/CardResponseRequestHandler.php';
13
14
/**
15
 * Simple example for request handling workflow with card response and help example
16
 * loading json
17
 * creating request
18
 * validating request
19
 * adding request handler to registry
20
 * handling request
21
 * returning json response
22
 */
23
$requestBody = file_get_contents('php://input');
24
if ($requestBody) {
25
    $alexaRequest = Request::fromAmazonRequest($requestBody, $_SERVER['HTTP_SIGNATURECERTCHAINURL'], $_SERVER['HTTP_SIGNATURE']);
26
27
    if (!$alexaRequest) {
0 ignored issues
show
$alexaRequest is of type MaxBeckers\AmazonAlexa\Request\Request, thus it always evaluated to true.
Loading history...
28
        http_response_code(400);
29
        exit();
30
    }
31
32
    // Request validation
33
    $validator = new RequestValidator();
34
    $validator->validate($alexaRequest);
35
36
    // add handlers to registry
37
    $responseHelper = new ResponseHelper();
38
    $helpRequestHandler = new HelpRequestHandler($responseHelper, 'Help Text', ['my_amazon_skill_id']);
39
    $mySimpleRequestHandler = new CardResponseRequestHandler($responseHelper);
40
    $requestHandlerRegistry = new RequestHandlerRegistry([$helpRequestHandler, $mySimpleRequestHandler]);
41
42
    // handle request
43
    $requestHandler = $requestHandlerRegistry->getSupportingHandler($alexaRequest);
44
    $response = $requestHandler->handleRequest($alexaRequest);
45
46
    // render response
47
    header('Content-Type: application/json');
48
    echo json_encode($response);
49
} else {
50
    http_response_code(400);
51
}
52
exit();
53