2016-09-12 2 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

당신이 볼 수 있듯이, "전송 된"속성은 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);