x3group-dev / calltouch
1.0.1
2024-08-13 08:41 UTC
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.9
- psr/container: ^2.0
This package is auto-updated.
Last update: 2024-09-13 08:55:18 UTC
README
安装
composer require x3group-dev/calltouch
跟踪UTM标记
为正确集成CallTouch,需要连接访客UTM标记收集器use X3Group\CallTouch\Conversion\Utm;
Utm::search();
跟踪活跃账户
在网站的任何部分,需要放置js脚本以搜索CallTouch的活跃账户use X3Group\CallTouch\Helpers\RenderHelper;
RenderHelper::showTrackingParameters();
属性对应图
CallTouch的所有方法都使用相同的交互点。需要构建一个对应图,将查询值的键与内部处理机制相关联。如果多个键匹配,则随机选择一个值。use X3Group\CallTouch\Container\FieldMap;
$map = new FieldMap();
$map->setPhone(['USER_PHONE']);
$map->setCallUrl(['NOW_PAGE']);
创建报告
提供了自定义生成与CallTouch交互结果报告的机制。无论结果如何,都会发送报告。报告生成器必须实现接口 X3Group\CallTouch\Reporters\ReportedInterface
自定义报告生成器示例
use Throwable;
use X3Group\CallTouch\Result\ResultInterface;
use X3Group\CallTouch\Helpers\ExceptionHelper;
use X3Group\CallTouch\Reporters\ReportedInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\RequestInterface;
class EmailReporter implements ReportedInterface
{
private ?ResponseInterface $response = null;
private ?RequestInterface $request = null;
private ?ResultInterface $result = null;
public function report(): void
{
if (null === $this->response) {
return;
}
$responseBody = $this->response->getBody();
$responseBody->rewind();
$message = $responseBody->getContents() ?: 'Unknown error';
mail('test@mail.ru', 'Subject', $message);
}
public function setResponse(ResponseInterface $response): self
{
$this->response = $response;
return $this;
}
public function setRequest(RequestInterface $request): self
{
$this->request = $request;
return $this;
}
public function setResultValidate(ResultInterface $result): self
{
$this->result = $result;
return $this;
}
}
初始化和发送请求
建议使用打包器来创建向CallTouch发送申请的方法。需要指定访问令牌 - 通过它来与API进行安全通信。第二个参数指定所需的申请发送方法。
use X3Group\CallTouch\MethodsEnum;
use X3Group\CallTouch\Builder\MethodBuilder;
$token = 'your access token...';
$builder = new MethodBuilder($token, MethodsEnum::CallBack);
$callTouch = $builder->make();
发送申请到 回电 的示例
use X3Group\CallTouch\Builder\CallbackBuilder;
$routeKey = "myKey";
$token = 'your access token...';
$formData = [
'USER_PHONE' => '79099999999',
'NAME' => "Игорь",
'EMAIL' => "test@mail.ru",
'NOW_PAGE' => 'http://test.ru',
];
$builder = new CallbackBuilder($token);
$builder->getFieldMap()
->setPhone(['USER_PHONE', 'PERSONAL_PHONE'])
->setCallUrl(['NOW_PAGE'])
->setFields([
'NAME',
'EMAIL',
'NOW_PAGE'
]);
$builder->setRouteKey($routeKey)
->addReporter(new EmailReporter)
->make()
->send($formData);
如果拥有多个CallTouch账户,则必须明确指定所需的账户。如果指定了不存在的账户,则将发送申请而无需指定会话。
$callTouch->setModelID('your model_id ...');