static async void SendTweetWithSinglePicture() { var auth = new SingleUserAuthorizer { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = "your consumer key", ConsumerSecret = "your consumer secret", AccessToken = "your access token", AccessTokenSecret = "your access token secret" } }; var context = new TwitterContext(auth); var uploadedMedia = await context.UploadMediaAsync(File.ReadAllBytes(@"c:\path\to\image.jpg")); var mediaIds = new List<ulong> { uploadedMedia.MediaID }; await context.TweetAsync( "Hello World! I am testing @dougvdotcom's #LinqToTwitter demo, at " + "https://www.dougv.com/2015/08/posting-twitter-status-updates-tweets-with-linqtotwitter-and-net-part-3-media-tweets", mediaIds ); }
static async Task UploadVideoAsync(TwitterContext twitterCtx) { string status = "Testing video upload tweet #Linq2Twitter £ " + DateTime.Now.ToString(CultureInfo.InvariantCulture); Media media = await twitterCtx.UploadMediaAsync(File.ReadAllBytes(@"..\..\images\SampleVideo.mp4"), "video/mp4"); Status tweet = await twitterCtx.TweetAsync(status, new ulong[] { media.MediaID }); if (tweet != null) Console.WriteLine("Tweet sent: " + tweet.Text); }
static async Task UploadMultipleImagesAsync(TwitterContext twitterCtx) { var additionalOwners = new List<ulong> { 3265644348, 15411837 }; string status = "Testing multi-image tweet #Linq2Twitter £ " + DateTime.Now.ToString(CultureInfo.InvariantCulture); var imageUploadTasks = new List<Task<Media>> { twitterCtx.UploadMediaAsync(File.ReadAllBytes(@"..\..\images\200xColor_2.png"), "image/png", additionalOwners), twitterCtx.UploadMediaAsync(File.ReadAllBytes(@"..\..\images\WP_000003.jpg"), "image/jpg"), twitterCtx.UploadMediaAsync(File.ReadAllBytes(@"..\..\images\13903749474_86bd1290de_o.jpg"), "image/jpg"), }; await Task.WhenAll(imageUploadTasks); List<ulong> mediaIds = (from tsk in imageUploadTasks select tsk.Result.MediaID) .ToList(); Status tweet = await twitterCtx.TweetAsync(status, mediaIds); if (tweet != null) Console.WriteLine("Tweet sent: " + tweet.Text); }
static async Task UpdateAccountBackgroundImageAsync(TwitterContext twitterCtx) { byte[] imageBytes = File.ReadAllBytes(@"..\..\Images\200xColor_2.png"); string mediaType = "image/png"; //// one way is to pass the byte[] //var user1 = // await twitterCtx.UpdateAccountBackgroundImageAsync( // image: imageBytes, // fileName: "LinqToTwitterLogo1.jpg", // imageType: "png", // tile: false, // includeEntities: false, // skipStatus: true); // another way is to upload the media and pass a media ID Media media = await twitterCtx.UploadMediaAsync(imageBytes, mediaType); var user2 = await twitterCtx.UpdateAccountBackgroundImageAsync( media.MediaID, fileName: "LinqToTwitterLogo2.png", imageType: "png", tile: false, includeEntities: false, skipStatus: true); //if (user1 != null) // Console.WriteLine("User1 Image: " + user1.ProfileImageUrl); if (user2 != null) Console.WriteLine("User2 Image: " + user2.ProfileImageUrl); }
static async void SendTweetWithMultiplePictures() { var auth = new SingleUserAuthorizer { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = "your consumer key", ConsumerSecret = "your consumer secret", AccessToken = "your access token", AccessTokenSecret = "your access token secret" } }; var context = new TwitterContext(auth); var imageUploadTasks = new List<Task<Media>> { context.UploadMediaAsync(File.ReadAllBytes(@"c:\path\to\image1.jpg")), context.UploadMediaAsync(File.ReadAllBytes(@"c:\path\to\image2.png")), context.UploadMediaAsync(File.ReadAllBytes(@"c:\path\to\image3.jpg")) }; await Task.WhenAll(imageUploadTasks); var mediaIds = (from tsk in imageUploadTasks select tsk.Result.MediaID) .ToList(); await context.TweetAsync( "Photos of Acadia National Park by Kim Seng https://www.flickr.com/photos/captainkimo/ #LinqToTwitter", mediaIds ); }