freshmail/rest-api

一个实现 FreshMail REST API 功能的 PHP 库。

v4.0.0 2024-02-26 12:30 UTC

README

一个实现连接到 FreshMail REST API 的 PHP 库。

此 API 客户端涵盖了 API V2 的所有功能,例如

  • 订阅者管理
  • 列表管理
  • 活动管理
  • 发送事务性短信消息

如果您想以富格式发送事务性消息,请使用新的 API V3 客户端

通过 composer 安装(兼容 PHP >=8.0)

通过 composer 添加

composer require freshmail/rest-api:^4.0

通过 composer 安装(兼容 PHP >=7.0)

通过 composer 添加

composer require freshmail/rest-api:^3.0

安装库的旧版本(兼容 PHP >=5.3)

通过 composer 添加

composer require freshmail/rest-api:^2.0

使用方法

以下是一些简单的示例,有关整个 API 功能的详细信息,请参阅 完整的 API V2 文档

测试连接

use \FreshMail\ApiV2\Client;

$token = 'MY_APP_TOKEN';
$apiClient = new Client($token);

$apiClient->doRequest('ping');

创建订阅者列表

use \FreshMail\ApiV2\Client;

$token = 'MY_APP_TOKEN';
$apiClient = new Client($token);

$data = [
    'name' => 'List with subscribers from my website'
];

$apiClient->doRequest('subscribers_list/create', $data);

将订阅者添加到列表中

use \FreshMail\ApiV2\Client;
    
$token = 'MY_APP_TOKEN';
$apiClient = new Client($token);

$data = [
    'email' => 'example@email.address',
    'list' => 'list_hash'
];

$apiClient->doRequest('subscriber/add', $data);

从异步 API 获取文件

use \FreshMail\ApiV2\Client;

$token = 'MY_APP_TOKEN';
$apiClient = new Client($token);

$data = [
    'id_job' => 'XXX'
];

$zipContent = $apiClient->doFileRequest('async_result/getFile', $data);

file_put_contents('/testLocation/testfile.zip', $zipContent);

代理设置

要使用代理,您可以通过传递您自己的 GuzzleHttp Client

use \FreshMail\ApiV2\Client;

$guzzleClient = new \GuzzleHttp\Client(
    [
        'proxy' => 'my proxy url'
    ]
);
    
$token = 'MY_APP_TOKEN';
$apiClient = new Client($token);
$apiClient->setGuzzleHttpClient($guzzleClient);

调试

PSR-3 日志接口

您可以使用任何实现 PSR-3 Psr\Log\LoggerInterface 的库,以下是一个使用 Monolog 的示例

use \FreshMail\ApiV2\Client;  

$logger = new \Monolog\Logger('myCustomLogger');
$logger->pushHandler(new \Monolog\Handler\StreamHandler('php://stderr', \Monolog\Logger::DEBUG));
    
$token = 'MY_APP_TOKEN';
$apiClient = new Client($token);
$apiClient->setLogger($monolog);

使用 Guzzle

您也可以传递您自己的带有适当配置的 GuzzleHttp Client

use \FreshMail\ApiV2\Client;

$stack = \GuzzleHttp\HandlerStack::create();
$stack->push(
    \GuzzleHttp\Middleware::log(
        new \Monolog\Logger('Logger'),
        new \GuzzleHttp\MessageFormatter(\GuzzleHttp\MessageFormatter::DEBUG)
    )
);

$guzzleClient = new \GuzzleHttp\Client(
    [
        'handler' => $stack,
    ]
);
    
$token = 'MY_APP_TOKEN';
$apiClient = new Client($token);
$apiClient->setGuzzleHttpClient($guzzleClient);