We all started somewhere! Share your experience on the Get Advice: Let's Get Started Sweepstakes thread and be entered to win a $100 credit on your Constant Contact account.

Authentication Problems


Authentication Problems

Using the ctct php library provided from Constant Contact and changing out all improtant authentication information, I recieve this error: OAuth Exception: Username <UserName> not found in datastore. I have confirmed that the API key information created for this account is correctly entered. The following is a code sample of what I have:


<h2>Add Contact Form Example</h2>
$username = '<UserName>';
$apiKey = 'apikey';
$consumerSecret = 'consumersecret';
$Datastore = new CTCTDataStore();
$DatastoreUser = $Datastore->lookupUser($username);

    $ConstantContact = new ConstantContact('oauth', $apiKey, $DatastoreUser['username'], $consumerSecret);
    $ContactLists = $ConstantContact->getLists();
<form name="addContact" action="" method="post">
    Email Address: <input type="text" name="email_address"><br />
    First Name: <input type="text" name="first_name"><br />
    Last Name: <input type="text" name="last_name"><br />
    <input type="submit" name="submit" value="Add Contact"><br />

        $Contact = new Contact();
        $Contact->emailAddress = $_POST['email_address'];
        $Contact->firstName = $_POST['first_name'];
        $Contact->lastName = $_POST['last_name'];
        $Contact->lists[0] = "http://api.constantcontact.com/ws/customers/<UserName>/lists/1";
       $NewContact = $ConstantContact->addContact($Contact);
            echo "<p>Thank You for joining our mailing list.</p>";
} else {echo '<p>Ooops, we seem to have encountered an error. Please e-mail us at <a href="mailto:&#109;&#101;&#103;&#104;&#097;&#110;&#064;&#115;&#097;&#105;&#108;&#045;&#110;&#121;&#099;&#046;&#099;&#111;&#109;" title="E-mail Classic Harbor Line">&#109;&#101;&#103;&#104;&#097;&#110;&#064;&#115;&#097;&#105;&#108;&#045;&#110;&#121;&#099;&#046;&#099;&#111;&#109;</a></p>';}


 The UserName string is the actual user name of the account. Please help!


Is there a way to add a user to a datastore that I may have missed in the setup instructions?

The datastore option of the library is a stub that is intended to be implemented by the user of the library.  The OAuth authentication flow will work and provide you with a token for access. If you do not implement code to store that token and username somewhere locally after you receive it, you will not be able to retrieve it at a later date for future calls.  If you look at the code for datastore, you will quickly notice that there is no actual code to store and retrieve the data.

Dave Berard
Senior Product Manager, Constant Contact

I have the same problem although I am using basic authentication

 $ConstantContact2 = new ConstantContact('basic', $apiKey, $username, $consumerPassword);


When connecting directly here


my credentials are accepted using format APIKEY%USERNME and PASSWORD but all I am getting is

       ERROR 404 - not found



404 not found indicates that the resource you are attempting to retrieve does not exist.  Since your URI that you're retrieving is not one of our API endpoints, that is actually the correct response.  You will need to find an actual endpoint, such as the following, to access parts of the API:




That would pull in the Contacts collection for the account {username}. 

Dave Berard
Senior Product Manager, Constant Contact
Developer Portal

View API documentation, code samples, get your API key.

Visit Page