public static void Send(IYoutubeAccount from, string to, string title, string message) { LOGGER.Info($"Sending mail from youtube account {from.Title} to recipient {to} with title {title}"); LOGGER.Debug($"Message content: {message}"); var token = YoutubeAccountService.GetAccessToken(from.Access, ac => ac.HasSendMailPrivilegue); if (!string.IsNullOrWhiteSpace(token) && !string.IsNullOrWhiteSpace(to)) { LOGGER.Debug($"Access token found. Sending mail"); // Wir können senden! HttpWebRequest request = HttpWebRequestCreator.CreateWithAuthHeader( $"https://www.googleapis.com/gmail/v1/users/me/messages/send?key={from.Access.First(a => a.AccessToken == token).Client.Secret}", "POST", token ); request.ContentType = "application/json"; string content = GenerateMail(to, title, message, true); RawMail mail = new RawMail() { raw = Encode(content) }; var rfcMail = JsonConvert.SerializeObject(mail); LOGGER.Debug($"rfc mail json: {rfcMail}"); string result = null; SendResult sendResult = null; try { result = WebService.Communicate(request, Encoding.UTF8.GetBytes(rfcMail)); LOGGER.Debug($"response from mail service: {result}"); sendResult = JsonConvert.DeserializeObject <SendResult>(result); } catch (Exception ex) { LOGGER.Error($"Exception occured while sending the mail", ex); } if (sendResult == null || !sendResult.labelIds.Any(label => label.ToUpper() == "SENT")) { LOGGER.Error($"Could not send the mail. Result: {result}"); } else { LOGGER.Error($"Mail was sent successfully"); } } }
private HttpWebRequest CreateThumbnailUploadRequest() { var accessToken = Account.GetActiveToken(); var secret = Account.Access.First(a => a.AccessToken == accessToken).Client.Secret; var request = HttpWebRequestCreator.CreateWithAuthHeader( $"https://www.googleapis.com/upload/youtube/v3/thumbnails/set?videoId={Video.Id}&key={secret}", "POST", accessToken); FileInfo file = new FileInfo(Video.ThumbnailPath); request.ContentLength = file.Length; request.ContentType = MimeMapping.GetMimeMapping(Video.ThumbnailPath); return(request); }
private string InitializeUploadOnYoutube() { var ytVideo = SerializableYoutubeVideo.Create(Video); string content = JsonConvert.SerializeObject(ytVideo); var bytes = Encoding.UTF8.GetBytes(content); var request = HttpWebRequestCreator.CreateWithAuthHeader( $"https://www.googleapis.com/upload/youtube/v3/videos?uploadType=resumable" + $"&autoLevels={Video.AutoLevels}¬ifySubscribers={Video.NotifySubscribers}" + $"&stabilize={Video.Stabilize}&part=snippet,status,contentDetails", "POST", Account.GetActiveToken()); request.Headers.Add("Slug", Path.GetFileName(new string(Video.File.Name.Where(c => Convert.ToInt32(c) < 128).ToArray()))); request.Headers.Add($"x-upload-content-length: {Video.File.Length}"); request.Headers.Add($"x-upload-content-type: {MimeMapping.GetMimeMapping(Video.File.Name)}"); request.ContentLength = bytes.Length; request.ContentType = "application/json; charset=utf-8"; return(WebService.Communicate(request, bytes, "Location")); }
public override bool IsValid(object value) { var uri = value as Uri; if (uri == null) { return(false); } try { var urlAttr = new UrlAttribute(); if (!urlAttr.IsValid(uri.ToString())) { ErrorMessage = urlAttr.ErrorMessage; return(false); } try { var request = new HttpWebRequestCreator().Create(uri); using (var response = (HttpWebResponse)request.GetResponse()) { return(response.StatusCode == HttpStatusCode.OK); } } catch (WebException e) { ErrorMessage = e.Message; return(false); } } catch (UriFormatException e) { ErrorMessage = e.Message; return(false); } }