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

Have you asked MailChimp about their API and its use?

What do you mean by "what params to pass along to it"?

Have you read the link "Translate Content in a Campaign" linked from the page you linked to?

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

Replies are listed 'Best First'.
Re^2: OT: WWW::Mailchimp - pass along the users language as well?
by ultranerds (Hermit) on Oct 14, 2015 at 05:39 UTC
    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