zfr/zfr-mailchimp

用于与v2 MailChimp REST API交互的PHP库

v2.0.7 2016-11-24 06:46 UTC

README

Latest Stable Version

重要:MailChimp已在其博客文章中宣布将停止使用旧版API(包括v1和v2)。由于此库基于v2,它将在年底停止工作。我现在没有时间更新此库到v3,但如果有人想处理这个问题,请不要犹豫!

注意:此库不包含测试,主要是因为我不确定如何编写API包装器的测试。请不要犹豫,帮助我。

简介

这是一个非官方的MailChimp PHP客户端,用于与v2 REST MailChimp API交互。如果您正在寻找针对旧版MailChimp API版本(如1.3)的包装器,请参考其他内容。

已实现的功能

客户端支持以下方法(虽然并非所有方法都已经过仔细测试)

  • 与活动相关的功能(完整)
  • 与Ecomm相关的功能(完整)
  • 与Vip相关的功能(完整)
  • 与文件夹相关的功能(完整)
  • 与用户相关的功能(完整)
  • 与报告相关的功能(仅主要方法)
  • 与模板相关的功能(完整)
  • 与列表相关的功能(几乎完整)
  • 与画廊相关的功能(完整)
  • 与助手相关的功能(部分完整)

依赖关系

与框架的集成

为了使此库更易于使用,以下是一些框架集成

想为其他框架做集成?打开一个问题,我会为您打开一个仓库!

安装

我们建议您使用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()) 文档

与助手相关的函数

  • array getAccountDetails(array $args = array()) 文档
  • array ping(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();