我們遇到了使用MailChimp API V3將成員添加到列表的問題。 這裏是我們的代碼:在MailChimp API V3中訂閱用戶
client.BaseAddress = new Uri("https://us12.api.mailchimp.com/3.0/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Basic", "API Key");
var reply = await client.GetStringAsync("lists");
var list = JsonConvert.DeserializeObject<ListResults>(reply);
AddMembers member = new AddMembers {
EmailAddress = "[email protected]",
Status = "subscribed"
};
string url = "lists/" + list.Data[0].Id + "/members";
string jsonData = JsonConvert.SerializeObject(member);
var content = new StringContent(
jsonData,
Encoding.UTF8,
"application/json");
HttpResponseMessage addMember = await client.PostAsync(url, content);
而這正是MailChimp預計:
--url 'https://usX.api.mailchimp.com/3.0/lists/57afe96172/members' \
--user 'anystring:apikey' \
--header 'content-type: application/json' \
--data '{"email_address":"[email protected]", "status":"subscribed"}'
但我們下面的代碼後得到:
HttpResponseMessage addMember = await client.PostAsync(url, content);
是一個 '錯誤的請求' 消息StatusCode'400'。我們真的很困惑,也許有些簡單的東西缺失。
嘗試通過在代碼的一部分中放置'Console.WriteLine()'語句來調試它。例如,在發出POST請求之前,「url」屬性的值是多少?該URL是否正確導出? –
網址生成正確。我們事先檢查過它。此外,內容字段是發佈的最終JSON,就像mailchimp期望的數據一樣。順便說一句,因爲mailchimp的協議是https,我們不能使用fiddler調試我們發佈的值。 –
你應該從MailChimp發佈錯誤響應體,它通常會告訴你問題是什麼。可能是「[email protected]」被選爲僞造地址? – TooMuchPete