2016-09-12 21 views
0

Aweber .NET APIを使用してブロードキャスト電子メールを送信します。私は認証することができ、私は加入者のリストを取得することができます。.NET APIを使用してAweberでブロードキャスト電子メールを送信

ブロードキャストを作成すると、それは正常に作成されます(要求は失敗しません)、私が作成したばかりのブロードキャストに関する情報を含む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の文字列は、以下の内容があります。 enter image description here

enter image description here

あなたが見ることができるように、 "sent"プロパティはnullなので、基本的には送信されません。

ありがとうございます。

答えて

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); 
関連する問題