sreedev/laravel-mailchimp

1.0.0 2020-06-09 08:41 UTC

README

为Laravel提供的简单、最小抽象的MailChimp API v3库

请参考MailChimp API文档以了解可用的方法

需要PHP 7.2+

您可以使用Composer安装laravel-mailchimp

composer require sreedev/laravel-mailchimp

然后您需要

  • 运行composer install以将这些依赖项添加到您的vendor目录
  • 使用以下命令将配置发布到应用程序:php artisan vendor:publish --provider="Sreedev\MailChimp\MailChimpServiceProvider" --tag="config"
  • 在.env文件中设置MAIL_CHIMP_API_KEY="<YOUR_API_KEY>"

示例

首先通过添加use使用库

 use Sreedev\MailChimp\Facades\MailChimp;

然后,列出所有邮件列表(通过lists方法的get调用)

$result = MailChimp::get('lists');

print_r($result);

将某人订阅到列表(通过lists/{listID}/members方法的post调用)

$list_id = 'b1234346';

$result = MailChimp::post("lists/$list_id/members", [
				'email_address' => 'member@example.com',
				'status'        => 'subscribed',
			]);

print_r($result);

使用patch更新更新列表成员的更多信息

$list_id = 'b1234346';
$subscriber_hash = MailChimp::subscriberHash('subscriber@example.com');

$result = MailChimp::patch("lists/$list_id/members/$subscriber_hash", [
				'merge_fields' => ['FNAME'=>'First', 'LNAME'=>'Man'],
				'interests'    => ['2s3a384h' => true],
			]);

print_r($result);

使用delete方法删除列表成员

$list_id = 'b1234346';
$subscriber_hash = MailChimp::subscriberHash('subscriber@example.com');

MailChimp::delete("lists/$list_id/members/$subscriber_hash");

使用success()方法快速测试操作是否成功

$list_id = 'b1234346';

$result = MailChimp::post("lists/$list_id/members", [
				'email_address' => 'subscriber@example.com',
				'status'        => 'subscribed',
			]);

if (MailChimp::success()) {
	print_r($result);	
} else {
	echo MailChimp::getLastError();
}

批量操作

MailChimp 批量操作允许您通过单个调用完成多个操作。例如:将数千个成员添加到列表 - 您可以在一个请求中完成此操作,而不是数千个。

use Sreedev\MailChimp\Facades\MailChimp;

$Batch 	   = MailChimp::newBatch()

您需要为操作设置一个ID作为第一个参数,并且您不会收到响应。该ID用于在批量操作的组合响应中找到此请求的结果。

$list_id ="abcd";
$Batch->post("op1", "lists/$list_id/members", [
				'email_address' => 'subscriber1@example.com',
				'status'        => 'subscribed',
			]);

$Batch->post("op2", "lists/$list_id/members", [
				'email_address' => 'subscriber2@example.com',
				'status'        => 'subscribed',
			]);

$Batch->post("op3", "lists/$list_id/members", [
				'email_address' => 'subscriber3@example.com',
				'status'        => 'subscribed',
			]);

一旦完成所有应在批量中进行的请求,您需要处理它。

$result = $Batch->process();

结果包括一个批量ID。稍后,您可以检查批量的状态

MailChimp::newBatch($batchId);
$result = $Batch->checkStatus();

当批量完成时,您可以下载响应中给出的URL的结果(JSON格式)。

故障排除

要获取HTTP客户端或API返回的最后错误,请使用getLastError()

echo MailChimp::getLastError();

为了进一步的调试,您可以检查响应的标头和正文

print_r(MailChimp::getLastResponse());

如果您怀疑您发送的数据格式不正确,您可以查看包装器发送给MailChimp的内容

print_r(MailChimp::getLastRequest());

如果您的服务器CA根证书没有更新,您可能会发现SSL验证失败,并且无法收到响应。解决这个问题并不是禁用SSL验证。正确的解决方案是更新您的证书。

贡献

这是一个简单的包装器,但是贡献可以使它变得更好。如果您想提出改进建议,请在提交pull request之前先提出一个问题来讨论。

欢迎提交关于错误的pull request - 请在消息中解释您试图修复的bug。