This project wraps around the basic MailChimp API, and gives you an easier and more readable solution for requesting data.
Nuget package: MailChimpWrapper
MailChimpWrapper.MailChimpClient client = new MailChimpWrapper.MailChimpClient("APIKEY", "SERVER");PingResponse pingResult = await client.GetRequest<PingResponse>(Endpoints.Ping);RootResponse rootresp = await client.GetRequest<RootResponse>(Endpoints.Root);ListsResponse listsResult = await client.GetRequest<ListsResponse>(Endpoints.Lists);ListResponse listResult = await client.Request<ListGetRequest, ListResponse>(new ListGetRequest("ID"));var listMembers = new List<Member>() { new Member(){
EmailAddress="emailaddress",
EmailClient="Outlook",
Language="En",
Status="subscribed",
EmailType="html"
}
};
ListMembersResponse listMembersResponse = await client.Request<ListMembersPostRequest, ListMembersResponse>(new ListMembersPostRequest("listId", listMembers));MemberTagsResponse memberTagsResponse = await client.Request<MemberTagsGetRequest, MemberTagsResponse>(new MemberTagsGetRequest("listId", "emailaddress"));Note: Because the Api doesn't return any content there is no response.
await client.Request(new MemberTagsPostRequest("listId", "emailaddress", new List<Tag>() { new Tag() { Name = "tagName", Status = "active/inactive" } }));var listCampaigns = await client.GetRequest<CampaignsResponse>(Endpoints.Campaigns);CampaignResponse campaign = await client.Request<CampaignGetRequest, CampaignResponse>(new CampaignGetRequest("campaignId"));var newCampaign = await client.Request<CampaignNewPostRequest, CampaignResponse>(new CampaignNewPostRequest(CampaignType.regular));await client.Request(new CampaignSendRequest(campaign.Id));await client.Request(new CampaignResendRequest(campaign.Id));await client.Request(new CampaignDeleteRequest(campaign.Id));This guide will show you how to subscribe and also unsubscribe batches of members.
- Create a list of members:
List<Member> members = new List<Member>();- Add a member to the list, change
newMember.Statusto one of the possible values: "subscribed", "unsubscribed", "cleaned", or "pending".
Member newMember = new Member();
newMember.Status = "subscribed";
newMember.MergeFields = new Dictionary<string, object>();
newMember.EmailAddress = "Emailaddress";
newMember.MergeFields = new Dictionary<string, object>()
{
{"FNAME","FirstName"},
{"LNAME","LastName"},
};
members.Add(newMember);- Create the batch subscribe request
var response = await MailChimpService.Client.Request<BatchSubscribeUnsubscribeRequest, BatchSubscribeUnsubscribeResponse>(
new BatchSubscribeUnsubscribeRequest("YOUR LISTID")
{
Members = members,
UpdateExisting = true,
});- Check the amount of created members
var amountOfNewMembers = response.NewMembers;This guide will explain how to edit a campaign and add you existing audience to it.
- Get the campaign by id:
CampaignResponse campaign = await client.Request<CampaignGetRequest, CampaignResponse>(new CampaignGetRequest("YOUR CAMPAIGNID"));- Edit their Recipients:
Recipients recipients = campaign.Recipients;
recipients.ListId = "YOUR LISTID";- Create a campaign edit request, inside the new request add the new recipients:
CampaignEditRequest campaignEditRequest = new CampaignEditRequest(campaign.Id) { Recipients = recipients };- Now request the edit of the campaign using the client:
CampaignResponse updatedCampaign = await client.Request<CampaignEditRequest, CampaignResponse>(campaignEditRequest);try
{
//request
}
catch (ResponseException responseException)
{
var message = responseException.ErrorResponse.Detail;
}
catch (UnknownResponseException unknownException)
{
var response = unknownException.ResponseMessage;
}Note: This project is in a very early stage!