Issues (11)

examples/simple-intent-request.php (1 issue)

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