This library is a helper for google actions with php.
Require the package with composer:
composer require maxbeckers/google-actions-php
Handle the request:
- map request data to request object
- validate request
- handle request data
- create response
- send response
Map needed request headers and request body to Request
.
use MaxBeckers\GoogleActions\Request\Request;
...
$requestBody = file_get_contents('php://input');
$googleRequest = Request::fromGoogleRequest($requestBody);
The RequestValidator
will handle the google request validation.
use MaxBeckers\GoogleActions\Validation\RequestValidator;
...
$validator = new RequestValidator();
$validator->validate($googleRequest);
For different requests it's helpful to create different RequestHandlers.
use MaxBeckers\GoogleActions\RequestHandler\RequestHandlerRegistry;
...
$requestHandlerRegistry = new RequestHandlerRegistry();
$requestHandlerRegistry->addHandler($myRequestHandler);
use MaxBeckers\GoogleActions\RequestHandler\RequestHandlerRegistry;
...
$requestHandler = $requestHandlerRegistry->getSupportingHandler($googleRequest);
$response = $requestHandler->handleRequest($googleRequest);
header('Content-Type: application/json');
echo json_encode($response);
exit();
The new request handler must extend AbstractRequestHandler
.
First implement the abstract supportsRequest
-method.
public function supportsRequest(Request $request): bool
{
return true; // check request data
}
Then implement the handleRequest
-method. For simple responses there is a ResponseHelper
.
use MaxBeckers\GoogleActions\Helper\ResponseHelper;
...
/** @var ResponseHelper */
private $responseHelper;
...
public function handleRequest(Request $request): Response
{
// todo set needed response data
return $responseHelper->respond('Success :)');
}