Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要一个MCAPI.Net的C#示例吗_C#_Mailchimp_Mcapi - Fatal编程技术网

需要一个MCAPI.Net的C#示例吗

需要一个MCAPI.Net的C#示例吗,c#,mailchimp,mcapi,C#,Mailchimp,Mcapi,Net()用于连接MailChimp API和网站上的订阅表单。我看过PHP和VB.Net如何订阅用户的示例。我需要一个C#one。有人能帮忙吗?在这里找到了代码-。线程上的人说他们有问题,但至少这是一个开始。不知道您是否仍然需要它,但我有一个用于MCApi的小包装: public class MailingService : IMailingService { public bool RemoveSubscriber(string email, string list, string

Net()用于连接MailChimp API和网站上的订阅表单。我看过PHP和VB.Net如何订阅用户的示例。我需要一个C#one。有人能帮忙吗?

在这里找到了代码-。线程上的人说他们有问题,但至少这是一个开始。

不知道您是否仍然需要它,但我有一个用于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;

    }
公共类邮件服务:IMailingService
{
public bool RemoveSubscriber(字符串电子邮件、字符串列表、字符串apiKey、bool deleteMember=true)
{
var mcApi=新的mcApi(apiKey,true);
var unsubscribeOptions=新列表。unsubscribeOptions();
unsubscribeOptions.SendGoodby=false;
unsubscribeOptions.SendNotify=false;
unsubscribeOptions.DeleteMember=DeleteMember;
尝试
{
返回mcApi.listusubscribe(列表、电子邮件、取消订阅选项);
}
捕获(例外)
{
返回false;
}
}
public bool AddOrUpdateSubscriber(字符串电子邮件、字符串列表、字符串apiKey)
{
var mcApi=新的mcApi(apiKey,true);
var merges=new List.merges();
var subscriptionOptions=新列表。subscriptionOptions();
subscriptionOptions.UpdateExisting=true;
subscriptionOptions.DoubleOptIn=false;
subscriptionOptions.SendWelcome=false;
返回mcApi.ListSubscribe(列表、电子邮件、合并、订阅选项);
}
public bool AddOrUpdateSubscriber(字符串电子邮件、字符串列表、字符串apiKey、字符串firstName、字符串lastName、字符串标题、字符串公司、字符串guid)
{
var mcApi=新的mcApi(apiKey,true);
var merges=new List.merges();
合并。添加(“FNAME”,firstName);
merges.Add(“LNAME”,lastName);
合并。添加(“标题”,标题);
合并。添加(“公司”,公司);
添加(“GUID”,GUID);
var subscriptionOptions=新列表。subscriptionOptions();
subscriptionOptions.UpdateExisting=true;
subscriptionOptions.DoubleOptIn=false;
subscriptionOptions.SendWelcome=false;
返回mcApi.ListSubscribe(列表、电子邮件、合并、订阅选项);
}
public bool AddOrUpdateSubscriberPromo(字符串电子邮件、字符串列表、字符串apiKey、字符串firstName、字符串lastName、字符串标题、字符串公司、字符串兴趣、字符串guid)
{
var mcApi=新的mcApi(apiKey,true);
var merges=new List.merges();
合并。添加(“FNAME”,firstName);
merges.Add(“LNAME”,lastName);
合并。添加(“标题”,标题);
合并。添加(“公司”,公司);
添加(“GUID”,GUID);
合并。添加(“INTERETS”,权益);
var subscriptionOptions=新列表。subscriptionOptions();
subscriptionOptions.UpdateExisting=true;
subscriptionOptions.DoubleOptIn=false;
subscriptionOptions.SendWelcome=false;
返回mcApi.ListSubscribe(列表、电子邮件、合并、订阅选项);
}
public bool UpdateSubscriberEmail(字符串oldmail、字符串newEmail、字符串apiKey)
{
var mcApi=新的mcApi(apiKey,true);
var merges=new List.merges();
var subscriptionOptions=新列表。subscriptionOptions();
subscriptionOptions.UpdateExisting=true;
subscriptionOptions.DoubleOptIn=false;
subscriptionOptions.SendWelcome=false;
返回mcApi.ListUpdateMember().ListSubscribe(列表、电子邮件、合并、订阅选项);
}
public bool SendCampaign(字符串url、字符串url参数、字符串fromEmail、字符串fromName、字符串列表、字符串emailSubject、字符串camapaignTitle、列表电子邮件、字符串apiKey)
{
var mcApi=新的mcApi(apiKey,true);
var options=new Campaign.options(列表、camapaignTitle、fromEmail、fromName、fromName);
var content=new Campaign.content.Html();
var guid=guid.NewGuid();
var segmentName=“qi_u2;”+guid;
var段id=0;
如果(segmentId==0)segmentId=mcApi.ListStaticSegmentAdd(list,segmentName);
mcApi.ListStaticSegmentMembersAdd(列表、段ID、电子邮件);
var segmentIds=新列表();
添加(segmentId.ToString());
var条件=新活动分段条件(“静态分段”、“均衡”、“分段ID”);
var条件=新的MCList();
条件。添加(条件);
var segmentOptions=新活动.segmentOptions(活动.Match.AND,条件);
content.Url=Url;
var成功=false;
LogManager.GetLogger(GetType().FullName+“”+camapaignTitle).Info(“Test de campagne”+”/Nb emails:“+emails.Count+”/Url:”+Url);
尝试
{
var id=mcApi.activitycreate(Campaign.Type.Regular、options、content、segmentOptions);
LogManager.GetLogger(GetType().FullName+“”+camapaignTitle).Info(“campagne的缩写-”+id);
尝试
{
success=!string.IsNullOrEmpty(id)和&mcApi.CampaignSendNow(id);
LogManager.GetLogger(GetType().FullName+“”+camapaignTitle).Info(“坎帕涅环境-”+id+”状态:“+success+”/Nb电子邮件:“+emails.Count+”/Url:+Url”);
回归成功;
}
捕获(例外情况除外)
{
LogManager.GetLogger(GetType().FullName+“”+camapaignTitle).Fatal(string.Format(“Erreur lors de l'envoi d'une campagne{0}{1}”,例如Message,例如StackTrace));
}
}
捕获(例外情况除外)
{
LogManager.GetLogger(GetType().FullName+“”+camapaignTitle).Fatal(string.Format(“Erreur lors de la création d'une campagne{0}{1}”,例如Message,例如StackTrace));
}
回归成功;
}

我已经试过了。