Here are the significant changes and/or defect corrections that were made available in the 12/2/2011Constant Contact API release:
Replace PHP wrapper on website with latest version
We have updated our PHP wrapper library to use the latest version. This includes better documentation and an easier programming model.
Return username as parameter in OAuth2 server flow
Previously our OAuth 2 server flow did not return the Constant Contact username. We have added a new parameter 'username' that contains the username (as a string), that is returned in the intermediate step in the OAuth 2 server flow (the same step where the 'code' parameter is returned'. Programmers should process the URL parameters in their callback routine to obtain the username (which is required for formulating URLs to the user data).
Support for logout in OAuth flows
When using OAuth via a web based application, the Constant Contact user is authenticated as part of the OAuth flow. We made a change to ensure that if a subsequent OAuth flow is initiated, the current user is logged out. This allows a different user to authenticate to their OAuth applcation.
Incorrect error code when retrieving image list
Previously an attempt to GET the list of images from the Library api will fail with a 404 error if 'application/xml' was used as the accept type in the accept header. Since 'application/xml' is not a supported type for image lists, we have changed the error message to a 406 when this accept header type is used.
Campaign create with missing <EmailTextContent> node returns ambiguous 400 error.
When creating a campaign, if the <EmailTextContent> node is not supplied, the following error will be returned: "Error 400: You must have content for your letter". This is the same error that is returned when the <EmailContent> node is not supplied. We have changed the error text to now read: "Error 400: Invalid or Missing <EmailTextContent>".
Error 500 returned when attempting to retrieve campaing stats for a non-existent campaign.
When attempting to GET campaign stats from the campaigns collection (for example, for a URI of the form campaigns/12345/events/sends) on a non-existent campaign, a 500 error is returned. We have changed this to return a 404 error with error text indicating that the campaign does not exist.
Retrieving campaign stats for a draft campaign returns a 403.
When attempting to GET campaign stats from the campaigns collection (for example, for a URI of the form campaigns/12345/events/sends) on a draft campaign, a 403 error is returned. We have changed this to return a 404 error with error text indicating that tracking data does not exist for the campaign.
Attempt to GET a registrant list can return 500 error
Under certain conditions, a GET on a registrant list for an event can return a 500 error if the event does not exist in the customer account. This has been changed to return a 404 error with an appropriate error message.