mendel-ideo / freshmail-rest-api
一个实现 FreshMail REST API 功能的 PHP 库。
1.0.0
2023-03-23 13:44 UTC
Requires
- php: >=8.1
- ext-curl: *
- ext-json: *
- guzzlehttp/guzzle: ~7.2
- monolog/monolog: ^3.0
- psr/log: ^2.0 || ^3.0
This package is not auto-updated.
Last update: 2024-09-20 19:55:41 UTC
README
一个实现连接到 FreshMail REST API 的 PHP 库。
此 API 客户端涵盖了 API V2 的所有功能,例如:
- 订阅者管理
- 列表管理
- 活动管理
- 发送交易性短信消息
如果您想以富格式发送交易性消息,请使用新的 API V3 客户端。
通过 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 的库,以下是一个使用 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);