maxbeckers/google-actions-php

这个库是PHP用于Google Actions的辅助库。

0.1.0 2017-08-07 18:25 UTC

This package is auto-updated.

Last update: 2024-09-25 11:18:42 UTC


README

这个库是PHP用于Google Actions的辅助库。

通过composer安装

使用composer安装此包

composer require maxbeckers/google-actions-php

用法

处理请求

  • 将请求数据映射到请求对象
  • 验证请求
  • 处理请求数据
  • 创建响应
  • 发送响应

将请求数据映射到请求对象

将所需的请求头和请求体映射到 Request

use MaxBeckers\GoogleActions\Request\Request;
...
$requestBody  = file_get_contents('php://input');
$googleRequest = Request::fromGoogleRequest($requestBody);

验证请求

RequestValidator 将处理Google请求验证。

use MaxBeckers\GoogleActions\Validation\RequestValidator;
...
$validator = new RequestValidator();
$validator->validate($googleRequest);

注册请求处理器

对于不同的请求,创建不同的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();

创建新的请求处理器

新的请求处理器必须扩展 AbstractRequestHandler。首先实现抽象的 supportsRequest-方法。

public function supportsRequest(Request $request): bool
{
    return true; // check request data
}

然后实现 handleRequest-方法。对于简单的响应,有一个 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 :)');
}