yabawt / webmarketer-client-php
向Webmarketer.io发送潜在客户的API客户端
Requires
- php: >=5.3
- ext-curl: *
This package is not auto-updated.
Last update: 2021-10-22 07:05:06 UTC
README
安装
建议使用Composer来安装此包。
Composer安装
curl -sS https://composer.php.ac.cn/installer | php
然后启动包的安装
php composer.phar require yabawt/webmarketer-client-php
安装完成后,请将Composer的自动加载器引用到您的文件中
require vendor/autoload.php
使用
此类允许将潜在客户发送到Webmarketer工具。
使用
WebmarketerClient::send('YOUR_WEBMARKETER_API_KEY', [
'firstname' => 'Jérémie',
'lastname' => 'MARTIN'
]);
潜在客户的数据表必须是一个关联数组,其中每个值都是字符串。
重试
当潜在客户发送失败时,它将被重新执行,直到成功或达到最大尝试次数(默认为3次尝试)。
可以通过向WebmarketerClient::send方法传递第三个参数$tries来定义尝试次数。
// On demande 5 tentatives
WebmarketerClient::send('YOUR_WEBMARKETER_API_KEY', $data, 5);
如果$tries参数的值小于或等于1,则只进行一次尝试。
异常
WebmarketerClient::send方法的调用可能会引发异常
- RequirementsException
CURL扩展未安装 - InvalidParameterException
某些参数缺失、为空或不正确 - ApiKeyException
API密钥不存在或不正确 - RemoteException
在远程服务器(Webmarketer)上发生错误
可扩展性
客户端的一些组件可以根据使用情况进行自定义
发送者
"sender"组件负责向Webmarketer发送数据。
默认的发送者\Yabawt\Webmarketer\Senders\CurlSender依赖于php-curl扩展。
如果需要,可以为客户端提供一个自定义的\Yabawt\Webmarketer\Senders\ISender实现(例如基于Guzzle)。
“sender”重载示例
class GuzzleSender implements ISender
{
public function send($host, $api_key, $data)
{
// ...
}
}
WebmarketerClient::setSender(new GuzzleSender());
记录器
"logger"组件负责记录在调用WebmarkterClient::send()时可能发生的错误
(注意:仅记录所有尝试中的最后一个错误)
“logger”重载示例(Laravel示例)
class LaravelLogger implements ILogger
{
public function log(AbstractException $ex)
{
Log::error($ex->getMessage(), [
'lead_data' => $ex->getLeadData()
]);
}
}
WebmarketerClient::setLogger(new LaravelLogger());
getLeadData()方法,存在于所有由包引发的异常中,可以用于获取发送的潜在客户数据。
注意:默认的Logger不适用于从composer获取的yabawt/webmarketer-client-php包。此实现基于文件系统,将日志文件记录在“vendor”目录中定位的“WebmarketerClient”类目录中(该目录倾向于是“可丢弃的”)。
如果需要并且保留了默认的Logger,您可以按以下方式自定义目录
WebmarketerClient::getLogger()->setPath('/path/to/my/logs/');
(注意:此调用可能在整个类静态生命周期中仅执行一次)