tompedals/helpscout-dynamic-app

一个帮助创建Help Scout动态应用的库

0.2.1 2016-09-28 21:51 UTC

This package is auto-updated.

Last update: 2024-09-20 04:31:24 UTC


README

这是一个简单的库,用于验证Help Scout动态应用请求并相应地作出响应。从官方库分叉出来,以添加对PSR-7 HTTP消息接口的支持。

安装

可以通过Composertompedals/helpscout-dynamic-app的形式进行安装。

composer require tompedals/helpscout-dynamic-app

示例

注意:以下示例使用zendframework/zend-diactoros作为HTTP消息实现。

处理请求

请求将通过请求头中提供的密钥和签名进行验证。

use TomPedals\HelpScoutApp\AppRequestFactory;
use Zend\Diactoros\ServerRequestFactory;

$factory = new AppRequestFactory('secret');
$request = $factory->create(ServerRequestFactory::fromGlobals());

/** @var TomPedals\HelpScoutApp\Model\Customer */
$customer = $request->getCustomer();

/** @var TomPedals\HelpScoutApp\Model\Mailbox */
$mailbox = $request->getMailbox();

/** @var TomPedals\HelpScoutApp\Model\Ticket */
$ticket = $request->getTicket();

/** @var TomPedals\HelpScoutApp\Model\User */
$user = $request->getUser();

响应请求

在响应中设置HTML,并获取JSON响应的正确模式。

use TomPedals\HelpScoutApp\AppResponse;
use Zend\Diactoros\Response\JsonResponse;

$response = new AppResponse('<h4>Test</h4>');
$jsonResponse = new JsonResponse($response->getData());

控制器操作

提供了一个PSR-7兼容的操作来处理请求并相应地响应。该操作是一个可调用的类,可用于Slim、Symfony、Zend Framework等。

实现AppHandlerInterface以处理AppRequest并返回要在Help Scout侧边栏中渲染的HTML。

class AppHandler implements AppHandlerInterface
{
    public function handle(AppRequest $request)
    {
        // Find customer information
        // Render the template
        // Return the HTML response

        return '<h4>This customer is awesome</h4>';
    }
}

在构造操作时传递AppHandler实现。

use TomPedals\HelpScoutApp\AppAction;
use TomPedals\HelpScoutApp\AppHandlerInterface;
use TomPedals\HelpScoutApp\AppRequestFactory;

// implements AppHandlerInterface
$handler = new AppHandler();

$action = new AppAction(new AppRequestFactory('secret'), $handler);
$response = $action($request, $response);