MailJet API - 广告系列制作中的问题

时间:2018-04-22 12:11:36

标签: mailjet

这与MailJet API for .NET - https://dev.mailjet.com/guides/?csharp#prepare-a-campaign

有关

当我尝试创建广告系列时,我收到以下错误

  

Root = {{   “ErrorInfo”:“”,   “ErrorMessage”:“无效的json输入:预期”,“,但在流位置133找到”“”... ctsList“:”| ContactLis ...“,   “StatusCode”:400   }}

下面是代码

var client = new MailjetClient(MjApikeyPublic, MjApikeyPrivate){
    Version = ApiVersion.V3
};
MailjetRequest request = new MailjetRequest{
    Resource = Campaigndraft.Resource,
}.Property(Campaigndraft.Locale, "en_US")
 .Property(Campaigndraft.Sender, "Mailjet Dv1")
 .Property(Campaigndraft.SenderEmail, "buddhika_jet@outlook.com")
 .Property(Campaigndraft.Subject, "Greetings from Mailjet")
 .Property(Campaigndraft.ContactsList, "10152")
 .Property(Campaigndraft.Title, "Friday newsletter");
response = await client.PostAsync(request);

我对通过的Campaigndraft.ContactsList值表示怀疑。考虑到官方的mailjet文档,参数应该是(Ref - https://dev.mailjet.com/guides/?csharp#prepare-a-campaign),

.Property(Campaigndraft.ContactsListID, "$ID_CONTACTSLIST")

但我在mailjet API版本3或版本3.1中找不到Campaigndraft.ContactsListID

任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

我在朋友的帮助下找到了解决这个问题的方法。希望这对于在mailjet API上开发的任何人都有帮助。 所以,是的,即使官方文档(https://dev.mailjet.com/guides/?csharp#prepare-a-campaign)指示我们使用' ContactsListID' Campaigndraft类的财产,

.Property(Campaigndraft.ContactsListID, "$ID_CONTACTSLIST")

由于某种原因,它实际上不适用于Campaigndraft。 所以,解决方法是使用,

.Property("ContactsListID", contactListId) 

字符串文字指示" ContactsListID"值。这是因为,mailjet中的Campaigndraft类只是一个API参数名称映射器,该类中可用的所有属性都表明可以使用各种参数进行API调用。

public static class Campaigndraft
{
    public const string Sender = "Sender";
    public const string Status = "Status";
    public const string Subject = "Subject";
    public const string Template = "Template"; 
    //...
}

因此,可以使用字符串文字而不是所有上述参数以及缺少官方mailjet包的任何参数。 希望这有所帮助和感谢。