in reply to Re: OT: WWW::Mailchimp - pass along the users language as well?
in thread OT: WWW::Mailchimp - pass along the users language as well?

Hi,

For anyone else who may come across this, I have managed to get the v3.0 API going using Perl. Please see the example below:
    use WWW::Curl::Easy;
    use JSON;
    use Digest::MD5;

    my $apikey = 'xxxx-us6';
    my $listid = 'xxxx';
    my $email = 'andy@testr.co.uk';
    my $endpoint = "https://us6.api.mailchimp.com/3.0/lists";

    my $json = JSON::encode_json({
        'email_address' => $email,
        'status'        => 'pending',
        'merge_fields'  => {
            'FNAME'     => "andy",
            'LNAME'     => "newby"
        }
    });

    my $curl = WWW::Curl::Easy->new;

    my $url = "$endpoint/$listid/members/" . Digest::MD5::md5(lc($email));

    $curl->setopt(CURLOPT_HEADER,1);
    $curl->setopt(CURLOPT_URL, $url);

    $curl->setopt(CURLOPT_VERBOSE, 1);
    $curl->setopt(CURLOPT_USERPWD, 'user:' . $apikey);
    $curl->setopt(CURLOPT_HTTPHEADER, 'Content-Type: application/json');
    $curl->setopt(CURLOPT_TIMEOUT, 10);
    $curl->setopt(CURLOPT_CUSTOMREQUEST, 'PUT');
    $curl->setopt(CURLOPT_SSL_VERIFYPEER, 0);
    $curl->setopt(CURLOPT_POSTFIELDS, $json);

    # A filehandle, reference to a scalar or reference to a typeglob can be used here.
    my $response_body;
    $curl->setopt(CURLOPT_WRITEDATA,\$response_body);

    # Starts the actual request
    my $retcode = $curl->perform;

    # Looking at the results...
    if ($retcode == 0) {
            print("Transfer went ok\n");
            my $response_code = $curl->getinfo(CURLINFO_HTTP_CODE);
            # judge result and next action based on $response_code
            print "Received response: $response_body\n";
    } else {
            # Error code, type of error, error message
            print "An error happened: $retcode ".$curl->strerror($retcode)." ".$curl->errbuf."\n";
    }
Hopefully that saves someone a bit of the grief I had trying to get it going :)

Cheers

Andy
  • Comment on Re^2: OT: WWW::Mailchimp - pass along the users language as well?