classy-org/mailchimp-api-php-client

There is no license information available for the latest version (1.0.2) of this package.

Simple wrapper around Guzzle Http Client to interact with Mailchimp API v3.0

Maintainers

Package info

github.com/classy-org/mailchimp-api-php-client

pkg:composer/classy-org/mailchimp-api-php-client

Statistics

Installs: 28 709

Dependents: 0

Suggesters: 0

Stars: 4

Open Issues: 0

1.0.2 2016-12-09 15:04 UTC

This package is not auto-updated.

Last update: 2026-03-15 03:51:03 UTC


README

Simple wrapper around Guzzle Http Client to interact with Mailchimp API v3.0

Installation

The Mailchimp API php client can be installed with Composer:

composer require classy-org/mailchimp-api-php-client

Be sure you included composer autoloader in your app:

require_once '/path/to/your/project/vendor/autoload.php';

Usage

// Instantiate the client
$client = new \Classy\MailchimpClient('dc834647d7f8a38c86b25dd4fdeff6f7-us2'); // use your mailchimp API key here

// Fetches your mailchimp lists
$httpResponse = $client->get('/lists');
$lists = json_decode($httpResponse->getBody()->getContents());

// Or shorter:
$lists = $client->getData('/lists');

Exception handling

This client is using Guzzle Http client. Exceptions are thrown when the Http response is not a 200 (OK) one:

try {
    $response = $client->get('/lists/e87ab1c34');
} catch (Exception $e) {
    if ($e instanceof \GuzzleHttp\Exception\ConnectException) {
        // there was a networking error
    }

    if ($e instanceof \GuzzleHttp\Exception\ClientException) {
        // Mailchimp API returned a 4xx response.
        $httpStatusCode = $e->getCode();
        if ($httpStatusCode == 404) {
            // resource doesn't exist
        }
        if ($httpStatusCode == 401) {
            // you're unauthorized (api key must be invalid)
        }
        if ($httpStatusCode == 403) {
            // you're not allowed to request this endpoint
        }
        if ($httpStatusCode == 400) {
            // body payload is invalid
        }
        if (...) {
            //
        }

        $bodyResponse = $e->getResponse()->getBody()->getContents();
    }

    if ($e instanceof \GuzzleHttp\Exception\ServerException) {
        // Mailchimp returned a 5xx response, which means they experience technical difficulties.
    }
}