2016-03-05 5 views
1

У меня есть следующий вызов, чтобы опубликовать подписку на список Mailchimp, но он возвращает неавторизованный. У меня есть ключ API, список и имя пользователя, хранящиеся в файле web.config, который я проверил трижды.Почтовый запрос MailChimp API v3 всегда возвращает неавторизованный

using (var wc = new System.Net.WebClient()) 
{ 
    string parameters = string.Concat("email_address=", email, "&status=", "subscribed"), 
      url = "https://us12.api.mailchimp.com/3.0/lists/" + ConfigurationManager.AppSettings["MailChimp.ListId"] + "/members"; 

    wc.Headers.Add("Content-Type", "application/json"); 

    wc.Credentials = new NetworkCredential("", ConfigurationManager.AppSettings["MailChimp.ApiKey"]); 

    string result = wc.UploadString(url, parameters); 
} 

ответ

3

Есть несколько проблем с кодом:

  1. Вы посылаете адрес электронной почты и статус в качестве параметров строки запроса вместо JSON
  2. Отправка учетных данных с WebClient таким образом Безразлично Не работайте правильно.

Попробуйте следующее:

var apiKey = "<api-key>"; 
var listId = "<your-list-id>"; 
var email = "<email-address-to-add>"; 

using (var wc = new System.Net.WebClient()) 
{ 
    // Data to be posted to add email address to list 
    var data = new { email_address = email, status = "subscribed" }; 

    // Serialize to JSON using Json.Net 
    var json = JsonConvert.SerializeObject(data); 

    // Base URL to MailChimp API 
    string apiUrl = "https://us12.api.mailchimp.com/3.0/"; 

    // Construct URL to API endpoint being used 
    var url = string.Concat(apiUrl, "lists/", listId, "/members"); 

    // Set content type 
    wc.Headers.Add("Content-Type", "application/json"); 

    // Generate authorization header 
    string credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(":" + apiKey)); 

    // Set authorization header 
    wc.Headers[HttpRequestHeader.Authorization] = string.Format("Basic {0}", credentials); 

    // Post and get JSON response 
    string result = wc.UploadString(url, json); 
} 
+0

Это работало отлично. Благодаря кучам Мун – Andrew

 Смежные вопросы

  • Нет связанных вопросов^_^