freshmail / rest-api
一个实现 FreshMail REST API 功能的 PHP 库。
v4.0.0
2024-02-26 12:30 UTC
Requires
- php: >=7.0||^8.0
- ext-curl: *
- ext-json: *
- guzzlehttp/guzzle: ~7.2|^7.3||^7.4
- monolog/monolog: ^2.0|^3.0
- psr/log: ^1.1|^2.0|^3.0
This package is auto-updated.
Last update: 2024-09-26 13:50:48 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);