mickzee
mickzee

Reputation: 31

How to send lead via API to Getresponse

I have a html form where name and email address are getting collected. I try to submit these informations to a GetResponse list using this script:

<?php

function mytheme_save_to_getresponse($form)
{

    require_once 'jsonRPCClient.php';
    $api_key = 'myAPIkey';
    $api_url = 'http://api2.getresponse.com';
    $client = new jsonRPCClient($api_url);
    $result = NULL;

try {
    $result = $client->get_campaigns(
        $api_key,
        array (
            # find by name literally
            'name' => array ( 'EQUALS' => 'testlist' )
        )
    );
}
catch (Exception $e) {
    # check for communication and response errors
    # implement handling if needed
    die($e->getMessage());
}

$campaigns = array_keys($result);
$CAMPAIGN_ID = array_pop($campaigns);

    $subscriberEmail =  $_GET['email'];

try {
    $result = $client->add_contact(
        $api_key,
        array (
            'campaign'  => $CAMPAIGN_ID,
            'name'     =>  $subscriberName,
            'email'     =>  $subscriberEmail,
            'cycle_day' => '0'
                    )
    );
}
catch (Exception $e) {
    # check for communication and response errors
    # implement handling if needed
    die($e->getMessage());
}
}
?>

The script doesn't show any errors but GetResponse is not saving the lead to my list. Am I doing something wrong?

Thanks James

Upvotes: 1

Views: 5559

Answers (3)

janek109
janek109

Reputation: 11

This line is wrong:

'name'     =>  $subscriberName,

because you have undefined variable and post it to then GetResponse API 'name' params without value so GetResponse API return Invalid params.

Change to:

$subscriberName => "Some_test_name", // for test only

In this line:

$subscriberEmail =  $_GET['email'];

you should set some email in GET table maybe for test just change to:

$subscriberEmail =  "[email protected]"; // or sth like this.

Last idea is var_dump $result variable then you see response from GetResponse API

$result = null; // before try {

var_dump($result); // before end of function } ?>

Upvotes: 1

shruti
shruti

Reputation: 11

If u are getting a response as [queued]=>1 then your script is working fine.. It will be added to your contact only after a validation/confirmation of entered email $subscriberEmail will recieve a confirmation email...after the user click on the link contact will get added

Upvotes: 1

user3176860
user3176860

Reputation: 1

Your code is looks good and You have to set the call back url for error handling

Upvotes: 0

Related Questions