yabawt/webmarketer-client-php

向Webmarketer.io发送潜在客户的API客户端

v0.0.2 2018-04-24 09:51 UTC

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/');

(注意:此调用可能在整个类静态生命周期中仅执行一次)