Seems nothing I do in this API gets me the actual email html. What can I do to pull the email content onto a page in my site. Archive purposes. I've got the listing no problem.
Using C# examples.
Hy Tyler,
In order to grab the the HTML from an email using our API it would have to be a custom coded email. I created an example for you in C# so you can see how to grab the data. If the email was created with the visual editor, then it wouldn't return anything.
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Net; using System.IO; using System.Xml; using System.Xml.XPath; namespace WebApplication4 { public partial class _Default : System.Web.UI.Page { string xmlResponse = ""; string apiKey = "your-api-key"; string username = "your-user-name"; string password = "your-password"; string name = ""; const string EmailElementName = "EmailContent"; protected void Page_Load(object sender, EventArgs e) { } protected void getData_btn_Click(object sender, EventArgs e) { xmlResponse_lbl.Text = getRequest(); } private string getRequest() { // Remeber to add using System.net // Create login creditials CredentialCache LoginCredentials = new CredentialCache(); //Add a new credential for this account LoginCredentials.Add(new Uri("https://api.constantcontact.com/ws/customers/{username}"), "Basic", // Authentication Type new NetworkCredential(apiKey + '%' + username, password)); // Create the request, you can not new. All requests must be created with WebRequest.Create // Use our URI that we want to get WebRequest Request = WebRequest.Create("https://api.constantcontact.com/ws/customers/{username}/campaigns/{CampaignID}"); // Set Request credentials Request.Credentials = LoginCredentials; // Place in a try block to ensure that any errors are caught try { //Get resposne from server HttpWebResponse Response = (HttpWebResponse)Request.GetResponse(); //Get our Data StreamReader reader = new StreamReader(Response.GetResponseStream()); XmlTextReader xmlreader = new XmlTextReader(reader); XPathDocument doc = new XPathDocument(xmlreader); // initialize navigator XPathNavigator pn = doc.CreateNavigator(); string ConstantNamespace = @"http://ws.constantcontact.com/ns/1.0/"; string AtomNamespace = @"http://www.w3.org/2005/Atom"; // initialize namespace manager XmlNamespaceManager resolver = new XmlNamespaceManager(pn.NameTable); resolver.AddNamespace("at", AtomNamespace); resolver.AddNamespace("cc", ConstantNamespace); const string xpathSelect = @"//cc:Campaign"; XPathExpression expr = pn.Compile(xpathSelect); expr.SetContext(resolver); XPathNodeIterator nodes = pn.Select(expr); while (nodes.MoveNext()) { // save current node XPathNavigator node = nodes.Current; if (node.HasChildren) { node.MoveToFirstChild(); do { switch (node.Name) { case EmailElementName: name = node.Value; break; }// End Switch } while (node.MoveToNext()); } // End do While } // End while nodes.MoveNext reader.Close(); xmlreader.Close(); return name; } catch (WebException e) { // Web Exception } catch (Exception e) { // Exception } // Parse the Data with XPATH return name; } } }
Please let me know if I can be of any more assistance.
Regards,
The holidays have come and gone. For many seasonal businesses, this means the rush of shoppers has decreased as well. Instead of turning off the lights and waiting for spring, make your email marketi...
See Article