0

我想使用 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字符串有以下内容: 在此处输入图像描述

在此处输入图像描述

如您所见,“已发送”属性为空,因此基本上不发送。

谢谢你。

4

1 回答 1

0

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

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);
于 2016-09-12T18:47:58.777 回答