zfr / zfr-mailchimp
用于与v2 MailChimp REST API交互的PHP库
Requires
- php: >=5.3.3
- guzzle/guzzle: ~3.5
Requires (Dev)
- phpunit/phpunit: ~3.7
This package is auto-updated.
Last update: 2024-08-29 03:41:47 UTC
README
重要:MailChimp已在其博客文章中宣布将停止使用旧版API(包括v1和v2)。由于此库基于v2,它将在年底停止工作。我现在没有时间更新此库到v3,但如果有人想处理这个问题,请不要犹豫!
注意:此库不包含测试,主要是因为我不确定如何编写API包装器的测试。请不要犹豫,帮助我。
简介
这是一个非官方的MailChimp PHP客户端,用于与v2 REST MailChimp API交互。如果您正在寻找针对旧版MailChimp API版本(如1.3)的包装器,请参考其他内容。
已实现的功能
客户端支持以下方法(虽然并非所有方法都已经过仔细测试)
- 与活动相关的功能(完整)
- 与Ecomm相关的功能(完整)
- 与Vip相关的功能(完整)
- 与文件夹相关的功能(完整)
- 与用户相关的功能(完整)
- 与报告相关的功能(仅主要方法)
- 与模板相关的功能(完整)
- 与列表相关的功能(几乎完整)
- 与画廊相关的功能(完整)
- 与助手相关的功能(部分完整)
依赖关系
- Guzzle库: >= 3.5
与框架的集成
为了使此库更易于使用,以下是一些框架集成
- ZfrMailChimpModule:一个Zend Framework 2模块
- ZfrMailChimpBundle:一个Symfony 2包
想为其他框架做集成?打开一个问题,我会为您打开一个仓库!
安装
我们建议您使用Composer安装ZfrMailChimp
php composer.phar require zfr/zfr-mailchimp:2.*
教程
首先,您需要实例化MailChimp客户端
$client = new MailChimpClient('my-api-key');
根据您的API密钥,将自动选择正确的端点。
然后,您可以访问所有可用方法(请参阅下文列表)
// Get activity about a list $activity = $client->getListActivity(array( 'id' => 'list-id' )); // Add a new folder $client->addFolder(array( 'name' => 'my-folder-name', 'type' => 'template' ));
如何使用?
您会发现下面的方法名称并不总是与API名称一一对应。例如,大多数涉及检索的方法都以前缀“get”开头。
然而,参数有一个精确的映射。因此,您只需参考给定方法的官方文档(链接见下文)。以下是一个使用subscribe方法的示例
$client->subscribe(array( 'id' => 'list-id', 'email' => array( 'email' => 'example@foo.com', 'euid' => '1545d' ) ));
异常处理
ZfrMailChimp尽可能从MailChimp错误中提取有意义的异常。所有异常都实现了ZfrMailChimp\Exception\ExceptionInterface
接口,因此您可以使用此接口进行捕获所有异常。您可以在ZfrMailChimp\Exception
文件夹中找到所有异常的详尽列表。
列表异常位于Ls命名空间下,因为列表是PHP中的保留关键字。
使用示例
try { $client->subscribe(array( 'id' => 'list-id', 'email' => array( 'email' => 'example@foo.com', 'euid' => '1545d' ) )); } catch (\ZfrMailChimp\Exception\Ls\AlreadySubscribedException $e) { $message = $e->getMessage(); // You can do something interesting here! } catch(\ZfrMailChimp\Exception\Ls\DoesNotExistException $e) { // Do something else useful! } catch (\ZfrMailChimp\Exception\ExceptionInterface $e) { // Any other exception that may occur }
完整参考
以下是今天支持的方法
与活动相关的功能
- array createCampaign(array $args = array()) doc
- array deleteCampaign(array $args = array()) doc
- array getCampaignContent(array $args = array()) 文档
- array getCampaigns(array $args = array()) 文档
- array getTemplateContent(array $args = array()) 文档
- array pauseCampaign(array $args = array()) 文档
- array replicateCampaign(array $args = array()) 文档
- array resumeCampaign(array $args = array()) 文档
- array scheduleCampaign(array $args = array()) 文档
- array scheduleBatchCampaign(array $args = array()) 文档
- array sendCampaign(array $args = array()) 文档
- array sendTestCampaign(array $args = array()) 文档
- array testSegmentation(array $args = array()) 文档
- array unscheduleCampaign(array $args = array()) 文档
- array updateCampaign(array $args = array()) 文档
相关列表方法
- array addInterestGroup(array $args = array()) 文档
- array addInterestGrouping(array $args = array()) 文档
- array addListMergeVar(array $args = array()) 文档
- array addListSegment(array $args = array()) 文档
- array addListWebhook(array $args = array()) 文档
- array addStaticListSegment(array $args = array()) 文档
- array addStaticSegmentMembers(array $args = array()) 文档
- array batchSubscribe(array $args = array()) 文档
- array batchUnsubscribe(array $args = array()) 文档
- array deleteInterestGroup(array $args = array()) 文档
- array deleteInterestGrouping(array $args = array()) 文档
- array deleteListMergeVar(array $args = array()) 文档
- array deleteListSegment(array $args = array()) 文档
- array deleteListWebhook(array $args = array()) 文档
- array deleteStaticSegmentMembers(array $args = array()) 文档
- array getAbuseReports(array $args = array()) 文档
- array getInterestGroupings(array $args = array()) 文档
- array getListActivity(array $args = array()) 文档
- array getListClients(array $args = array()) 文档
- array getListGrowthHistory(array $args = array()) 文档
- array getListMergeVars(array $args = array()) 文档
- array getLists(array $args = array()) 文档
- array getListLocations(array $args = array()) 文档
- array getListMembers(array $args = array()) 文档
- array getListMembersActivity(array $args = array()) 文档
- array getListMembersInfo(array $args = array()) 文档
- array getListSegments(array $args = array()) 文档
- array getListStaticSegments(array $args = array()) 文档
- array getListWebhooks(array $args = array()) 文档
- array resetListMergeVar(array $args = array()) 文档
- array resetStaticSegment(array $args = array()) 文档
- array setListMergeVar(array $args = array()) 文档
- array subscribe(array $args = array()) 文档
- array testListSegment(array $args = array()) 文档
- array unsubscribe(array $args = array()) 文档
- array updateInterestGroup(array $args = array()) 文档
- array updateInterestGrouping(array $args = array()) 文档
- array updateListMember(array $args = array()) 文档
- array updateListSegment(array $args = array()) 文档
电商相关方法
- array addOrder(array $args = array()) 文档
- array deleteOrder(array $args = array()) 文档
- array getOrders(array $args = array()) 文档
文件夹相关方法
- array addFolder(array $args = array()) 文档
- array deleteFolder(array $args = array()) 文档
- array getFolders(array $args = array()) 文档
- array updateFolders(array $args = array()) 文档
模板相关方法
- array addTemplate(array $args = array()) 文档
- array deleteTemplate(array $args = array()) 文档
- array getTemplateInfo(array $args = array()) 文档
- array getTemplates(array $args = array()) 文档
- array undeleteTemplate(array $args = array()) 文档
- array updateTemplate(array $args = array()) 文档
与报告相关的函数
- array getCampaignAbuseReport(array $args = array()) 文档
- array getCampaignAdviceReport(array $args = array()) 文档
- array getCampaignBounceMessage(array $args = array()) 文档
- array getCampaignBounceMessages(array $args = array()) 文档
- array getCampaignSummaryReport(array $args = array()) 文档
- array getCampaignGoogleAnalyticsReport(array $args = array()) 文档
与用户相关的函数
- array inviteUser(array $args = array()) 文档
- array getInvitations(array $args = array()) 文档
- array getLogins(array $args = array()) 文档
- array getProfile(array $args = array()) 文档
- array reinviteUser(array $args = array()) 文档
- array revokeLogin(array $args = array()) 文档
- array revokeUserInvitation(array $args = array()) 文档
与VIP相关的函数
- array addVipMembers(array $args = array()) 文档
- array deleteVipMembers(array $args = array()) 文档
- array getVipMembers(array $args = array()) 文档
- array getVipActivity(array $args = array()) 文档
与相册相关的函数
- array getGalleryImages(array $args = array()) 文档
与助手相关的函数
高级用法
附加Guzzle插件
更新:Guzzle 3的异步插件已被证明非常奇怪,并且经常无法按预期工作。实际上,它在Guzzle 5中已经被移除。我建议你尝试手动安装异步插件,但我推荐你不要使用它。
由于ZfrMailChimp建立在Guzzle之上,你可以利用它所有的美好功能。例如,假设你想要发送异步请求,你可以简单地附加内置的异步插件
use ZfrMailChimp\Client\MailChimpClient; use Guzzle\Plugin\Async\AsyncPlugin; $client = new MailChimpClient('my-secret-key'); $client->addSubscriber(new AsyncPlugin()); $response = $client->get()->send();