【问题标题】:Using Campaign Monitor's API使用 Campaign Monitor 的 API
【发布时间】:2014-05-02 01:28:55
【问题描述】:

我正在寻找一种在我的 ASP.NET/VB Web 应用程序中使用 Campaign Monitor 的 API 的方法。 我之前没有使用过任何 API,因此阅读他们的文档非常难以理解。

如果有人使用过它并能够提供一些说明,我将不胜感激;或者如果有人有一些一般使用说明(如果应用于任何 APi),请做我的客人! :)

我知道这不是典型的“我有问题,这是我的问题,这是我迄今为止的努力”,但我们将不胜感激。

【问题讨论】:

  • 您是将订阅者添加到列表中还是要做很多不同的事情?
  • 基本上添加订阅者,是的!
  • 好的,那我给你一个答案……我已经完成了它的构建并稍后发布。

标签: asp.net vb.net api campaign-monitor


【解决方案1】:

您还可以使用 Nuget 上提供的 Campaign Monitor API client library

AuthenticationDetails auth = new ApiKeyAuthenticationDetails(apiKey);

var fields = new List<SubscriberCustomField>() {
    new SubscriberCustomField() { Key = "MyCustomField", Value = myVal }
};

var subscriber = new Subscriber(auth, listId);

subscriber.Add(email, fullName, fields, false);

【讨论】:

    【解决方案2】:

    我使用活动监视器来填充订阅者列表。

    有两种方法可以将您的订阅者发布到列表中。我会坚持最简单的。让我们先收集一些你需要的东西。

    1. 您需要一个 API 密钥(我相信您有)。

    2. 您需要创建一个订阅者列表,然后在创建此列表后 您需要列表 ID。获取 ID(这很奇怪)。你会 需要点击进入您的订阅者列表。这个找这个 顶端。单一选择加入列表(更改名称/类型) 注意:您不是 要更改名称或编辑任何内容,但您必须单击 在这里获取ID。在第三部分你会看到:API 订户列表 ID。如果您使用 API,则需要此 ID 访问此列表。 000x0000xx0x0xx00x00xx(只是一个例子。)

    3. 您需要一个表单来获取姓名和电子邮件。你需要你的listid 你在前一点。

    然后你需要编写一个通信对象。

    如果您直接拨打电话,则需要姓名、电子邮件和 listid。

    ListID ="000x0000xx0x0xx00x00xx";
    Email ="JoeM@somethingemail.com";
    Name = "Joe Middle";
    
    APIKey = yourAPIKey;
    APIURL = "http://api.createsend.com/";
    
    
    ApiCall = variables.APIURL;
    ApiCall &= "api/api.asmx/Subscriber.Add?ApiKey=" & variables.APIKey;
    ApiCall &= "&ListID=" & URLEncodedFormat(arguments.ListID);
    ApiCall &= "&Email=" & URLEncodedFormat(arguments.Email); 
    ApiCall &= "&Name=" & URLEncodedFormat(arguments.Name);
    

    一旦你建立了你的 url,你就可以使用 .net 使用的任何方法来发布 http。

    然后你会想要为成功或失败编写代码并使用该信息做一些事情。发布到 http 并调用结果。 apiResult.

    apiResult = xmlParse(apiResult.fileContent);
    try {intCount = ArrayLen(apiResult.Result.XMLChildren);}
    catch(Any e){intCount = 0;}
    if (intCount gt 0){apiResult = apiResult.Result.xmlChildren;}
    // Error handling
    if ( apiResult[1].xmlName eq "Code" and apiResult[2].xmlName eq "Message" ){
    returnStruct['blnSuccess'] = 0;
    returnStruct['errorCode'] = apiResult[1].xmlText;
    returnStruct['errorMessage'] = apiResult[2].xmlText;
    }
    // Success
    else {
    // Return str
    returnStruct['blnSuccess'] = 1;
    returnStruct['returnString'] = apiResult.Result.xmlText;
    }    
    

    上面的代码改编自coldfusion,我没有构建它,但它是cfscript,不是CFML,你可以解释正在发生的事情。

    如果您将其改编为 .NET,那么您所缺少的只是您的 HTTP 调用方法。

    要登录 Campaign Monitor 并单击您的列表。您应该会看到添加的内容,如果不是,则可能是您的 API 密钥(通常不是这种情况)、您的 listID(可能是这种情况)、您的代码(很可能是罪魁祸首)。

    这是匆忙敲定的,如果流程很奇怪,请道歉。

    祝你好运!

    【讨论】:

    • 这太棒了,弗兰克!你帮了大忙,谢谢!
    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多