chezrd / jivochat-webhooks-api
用于Jivochat(Jivosite)Webhooks API集成的库。
2.1.8
2023-05-16 22:49 UTC
Requires
- php: ^7.3 || ^8
- chezrd/jivochat-webhooks-model: ^1.0
Requires (Dev)
- ext-mongodb: *
- ext-pdo: *
- mongodb/mongodb: 1.1.*
- monolog/monolog: 1.9.*
Suggests
- ext-mongodb: Allow logging of Webhooks requests/response data to a MongoDB server
- ext-pdo: Allow logging of Webhooks requests/response data to a MySQL server
- mongodb/mongodb: Allow logging of Webhooks requests/response data to a MongoDB server via PHP Driver
- monolog/monolog: Allow logging of Webhooks requests/response using Monolog
This package is auto-updated.
Last update: 2024-09-19 20:12:08 UTC
README
用于 Jivochat (Jivosite) Webhooks API集成的库。
此库允许您与Jivosite Webhooks API集成,
- 并以事件驱动方式处理API调用;
- 将特定事件的API请求JSON数据转换为事件对象;
- 生成API响应;
- 将原始请求(和生成的响应)数据保存到MySQL或MongoDB服务器,并通过Monolog进行记录。
有关俄语文档,请参阅 README-ru.md。
要求
此库需要PHP 7.0或更高版本进行基本使用。
可选要求
- PDO扩展 允许将Webhooks请求/响应数据记录到MySQL服务器;
- Monolog库 允许使用Monolog记录Webhooks请求/响应;
- MongoDB库 允许将Webhooks请求/响应数据记录到MongoDB服务器。
强烈建议安装上述至少一个记录器,以保留通过Webhooks API发送的原始请求的“备份”。
安装
安装此库的首选方式是通过 Composer。要安装最新版本,运行
composer require chezrd/jivochat-webhooks-api
基本用法
<?php use ChezRD\Jivochat\Webhooks\Log\MySQLLog; use ChezRD\Jivochat\Webhooks\Event; use ChezRD\Jivochat\Webhooks\EventListener; use ChezRD\Jivochat\Webhooks\Model\EventRequest\ChatAcceptedRequest; use ChezRD\Jivochat\Webhooks\Model\EventRequest\ChatFinishedRequest; use ChezRD\Jivochat\Webhooks\Response; use ChezRD\Jivochat\Webhooks\Response\SuccessResponse; use ChezRD\Jivochat\Webhooks\Response\UpdateResponse; // create MySQL logger $dbLogger = new MySQLLog(new PDO('mysql:dbname=test;host=127.0.0.1', 'root', 'root')); // create Callback API event listener $listener = new EventListener([$dbLogger]); // bind listener for `chat_accepted` event $listener->on(Event::EVENT_CHAT_ACCEPTED, function (ChatAcceptedRequest $request): Response { // here you do your stuff - find user in your database, etc $user = User::getByEmail($request->visitor->email); // generate response on Callback API $response = new UpdateResponse(); $response->setCRMLink(...); $response->setContactInfo(...); $response->setCustomData(...); // event handler must return Response object return $response; }); // bind listener for `chat_accepted` event $listener->on(Event::EVENT_CHAT_FINISHED, function (ChatFinishedRequest $request): Response { /** @var int Timestamp of the chat's first message. */ $chatBeginAt = $request->chat->messages[0]->timestamp; // ... return new SuccessResponse(); }); // execute event listener $listener->listen();
文档
- Jivochat Webhooks API 官方文档
许可协议
此库受MIT许可证的许可 - 有关详细信息,请参阅 LICENSE 文件。
致谢
感谢2017年的原始库作者Oleg Fedorov (Olegf13),以及此Jivosite Webhook处理器库。