MCAPI.Net(http://mcapinet.codeplex.com/)用于将MailChimp API与网站上的订阅表单连接起来。我已经看到了如何订阅人的PHP和VB.Net示例。我需要一个C#。谁能帮忙?需要MCAPI.Net的C#示例
2
A
回答
0
在此处找到了代码 - http://mcapinet.codeplex.com/discussions/271278。线上的人表示他们遇到了问题,但至少这是一个开始。
2
不知道,如果你仍然需要它,但我有一个小包装的MCAPI:
public class MailingService : IMailingService
{
public bool RemoveSubscriber(string email, string list, string apiKey, bool deleteMember = true)
{
var mcApi = new MCApi(apiKey, true);
var unsubscribeOptions = new List.UnsubscribeOptions();
unsubscribeOptions.SendGoodby = false;
unsubscribeOptions.SendNotify = false;
unsubscribeOptions.DeleteMember = deleteMember;
try
{
return mcApi.ListUnsubscribe(list, email, unsubscribeOptions);
}
catch (Exception)
{
return false;
}
}
public bool AddOrUpdateSubscriber(string email, string list, string apiKey)
{
var mcApi = new MCApi(apiKey, true);
var merges = new List.Merges();
var subscriptionOptions = new List.SubscribeOptions();
subscriptionOptions.UpdateExisting = true;
subscriptionOptions.DoubleOptIn = false;
subscriptionOptions.SendWelcome = false;
return mcApi.ListSubscribe(list, email, merges, subscriptionOptions);
}
public bool AddOrUpdateSubscriber(string email, string list, string apiKey, string firstName, string lastName, string title, string company, string guid)
{
var mcApi = new MCApi(apiKey, true);
var merges = new List.Merges();
merges.Add("FNAME", firstName);
merges.Add("LNAME", lastName);
merges.Add("TITLE", title);
merges.Add("COMPANY", company);
merges.Add("GUID", guid);
var subscriptionOptions = new List.SubscribeOptions();
subscriptionOptions.UpdateExisting = true;
subscriptionOptions.DoubleOptIn = false;
subscriptionOptions.SendWelcome = false;
return mcApi.ListSubscribe(list, email, merges, subscriptionOptions);
}
public bool AddOrUpdateSubscriberPromo(string email, string list, string apiKey, string firstName, string lastName, string title, string company, string interests, string guid)
{
var mcApi = new MCApi(apiKey, true);
var merges = new List.Merges();
merges.Add("FNAME", firstName);
merges.Add("LNAME", lastName);
merges.Add("TITLE", title);
merges.Add("COMPANY", company);
merges.Add("GUID", guid);
merges.Add("INTERETS", interests);
var subscriptionOptions = new List.SubscribeOptions();
subscriptionOptions.UpdateExisting = true;
subscriptionOptions.DoubleOptIn = false;
subscriptionOptions.SendWelcome = false;
return mcApi.ListSubscribe(list, email, merges, subscriptionOptions);
}
public bool UpdateSubscriberEmail(string oldEmail, string newEmail, string apiKey)
{
var mcApi = new MCApi(apiKey, true);
var merges = new List.Merges();
var subscriptionOptions = new List.SubscribeOptions();
subscriptionOptions.UpdateExisting = true;
subscriptionOptions.DoubleOptIn = false;
subscriptionOptions.SendWelcome = false;
return mcApi.ListUpdateMember().ListSubscribe(list, email, merges, subscriptionOptions);
}
public bool SendCampaign(string url, string urlParams, string fromEmail, string fromName, string list, string emailSubject, string camapaignTitle, List<string> emails, string apiKey)
{
var mcApi = new MCApi(apiKey, true);
var options = new Campaign.Options(list, camapaignTitle, fromEmail, fromName, fromName);
var content = new Campaign.Content.Html();
var guid = Guid.NewGuid();
var segmentName = "qi_" + guid;
var segmentId = 0;
if(segmentId == 0) segmentId = mcApi.ListStaticSegmentAdd(list, segmentName);
mcApi.ListStaticSegmentMembersAdd(list, segmentId, emails);
var segmentIds = new List<string>();
segmentIds.Add(segmentId.ToString());
var condition = new Campaign.SegmentCondition("static_segment", "eq", segmentIds);
var conditions = new MCList<Campaign.SegmentCondition>();
conditions.Add(condition);
var segmentOptions = new Campaign.SegmentOptions(Campaign.Match.AND, conditions);
content.Url = url;
var success = false;
LogManager.GetLogger(GetType().FullName + " " + camapaignTitle).Info("Test de campagne" + "/Nb emails : " + emails.Count + "/Url : " + url);
try
{
var id = mcApi.CampaignCreate(Campaign.Type.Regular, options, content, segmentOptions);
LogManager.GetLogger(GetType().FullName + " " + camapaignTitle).Info("Création de campagne - " + id);
try
{
success = !string.IsNullOrEmpty(id) && mcApi.CampaignSendNow(id);
LogManager.GetLogger(GetType().FullName + " " + camapaignTitle).Info("Envoi de campagne - " + id + " Statut : " + success + "/Nb emails : " + emails.Count + "/Url : " + url);
return success;
}
catch (Exception ex)
{
LogManager.GetLogger(GetType().FullName + " " + camapaignTitle).Fatal(string.Format("Erreur lors de l'envoi d'une campagne {0} {1}", ex.Message, ex.StackTrace));
}
}
catch(Exception ex)
{
LogManager.GetLogger(GetType().FullName + " " + camapaignTitle).Fatal(string.Format("Erreur lors de la création d'une campagne {0} {1}", ex.Message, ex.StackTrace));
}
return success;
}
相关问题
- 1. 需要全面的C#System.Threading.Tasks示例
- 2. 需要示例用例图
- 3. 需要Excel SheetSelectionChange事件示例。 C++
- 4. 使用JQuery示例需要的图像显示需要
- 5. 需要帮助maven示例
- 6. 需要示例实现MessageHeaders.WriteHeaderContents
- 7. 需要AvalonDock ILayoutUpdateStrategy示例
- 8. 需要richfaces拖放示例
- 9. 需要Android ProtoBuf RPC示例?
- 10. 需要Mono Zeroconf示例
- 11. 需要MUMPS示例代码
- 12. 需要帮助Rspec示例
- 13. Antlr符号 - 需要示例
- 14. Greendroid GDExpandableListActivity示例需要
- 15. 需要Vaadin ExcelExport示例
- 16. 需要AES解密示例
- 17. threejs AnimationClip示例需要
- 18. RESTful MongoDB需要Nodejs示例
- 19. System.Linq.Dynamic库 - 需要Count()示例
- 20. OSMDroid简单示例需要
- 21. C#简单的DataSocket实例需要
- 22. 需要WPF Gradiant Picker的示例
- 23. 需要简单的Web服务示例
- 24. JAVA Http隧道:需要的示例
- 25. 需要简单的协议示例?
- 26. 其中makeKeyAndVisible不需要UIWindow的示例
- 27. 需要工作示例的WSO2 ESB
- 28. 我需要简单的python oAuth示例
- 29. 需要opencv SVM的快速示例
- 30. 需要_wcstombs_l的工作示例代码
我试过了。 – lonehorseend