使用 .NET 在 Aweber 中发送广播电子邮件 API

Send a broadcast e-mail in Aweber using .NET API

我想使用 Aweber .NET 发送广播电子邮件 API。我可以进行身份​​验证,并且可以检索订阅者列表。

当我创建一个广播时,它创建成功(请求没有失败)并且我得到一个 JSON 包含关于我刚刚创建的广播的信息。然而,在 aweber 帐户中,我去广播,但我没有看到关于我刚刚使用 API 创建的广播的任何信息!它没有发送,也没有安排或草稿。它根本不存在。

这是我用来创建广播的代码:

string endpoint = string.Format("https://api.aweber.com/1.0/accounts/{0}/lists/{1}/broadcasts", account_id, list_id);

Request request = new Request
{
      oauth_consumer_key = consumerKey,
      oauth_consumer_secret = consumerSecret, 
      oauth_token = token,
      oauth_token_secret = api.OAuthTokenSecret
};

SortedList<string, string> parameters = new SortedList<string, string>();

parameters.Add("click_tracking_enabled", "True");
parameters.Add("is_archived", "True");
parameters.Add("notify_on_send", "True");
parameters.Add("body_text", "xxxxx");
parameters.Add("subject", "yyyyyy");

request.Build(parameters, endpoint);
WebClient client = new WebClient();

client.Headers["Content-type"] = "application/x-www-form-urlencoded";

string str = string.Empty;

str = client.UploadString(endpoint, request.Parameters);

执行后str字符串内容如下:

可以看到,"sent" 属性 是null,所以基本上没有发送。

谢谢。

我找到了解决方案。广播需要安排。这是代码:

Broadcast broadcast = JsonConvert.DeserializeObject<Broadcast>(str);

endpoint = endpoint + string.Format("/{0}/schedule", broadcast.broadcast_id);

Request new_request = new Request()
{
        oauth_consumer_key = consumerKey,
        oauth_consumer_secret = consumerSecret,
        oauth_token = token,
        oauth_token_secret = api.OAuthTokenSecret
};

SortedList<string, string> new_parameters = new SortedList<string, string>();

new_parameters.Add("scheduled_for", DateTime.UtcNow.ToString("o"));

new_request.Build(new_parameters, endpoint);

WebClient new_client = new WebClient();

new_client.Headers["Content-type"] = "application/x-www-form-urlencoded";

str = new_client.UploadString(endpoint, new_request.Parameters);