1

这是关于 .NET 的 MailJet API - 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 文档,参数应该是(参考 - https://dev.mailjet.com/guides/?csharp#prepare-a-campaign),

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

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

任何帮助都感激不尽。提前致谢。

4

1 回答 1

1

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

.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 包缺少的任何参数。希望这会有所帮助并感谢。

于 2018-05-01T17:18:37.370 回答