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); string mediaCategory = "tweet_image"; var imageUploadTasks = new List <Task <Media> > { twitterCtx.UploadMediaAsync(File.ReadAllBytes(@"..\..\..\images\200xColor_2.png"), "image/png", additionalOwners, mediaCategory), twitterCtx.UploadMediaAsync(File.ReadAllBytes(@"..\..\..\images\WP_000003.jpg"), "image/jpg", mediaCategory), twitterCtx.UploadMediaAsync(File.ReadAllBytes(@"..\..\..\images\13903749474_86bd1290de_o.jpg"), "image/jpg", mediaCategory), }; await Task.WhenAll(imageUploadTasks); List <ulong> mediaIds = (from tsk in imageUploadTasks select tsk.Result.MediaID) .ToList(); mediaIds.ForEach(async id => await twitterCtx.CreateMediaMetadataAsync(id, $"Test Alt Text for Media ID: {id}")); Status tweet = await twitterCtx.TweetAsync(status, mediaIds); if (tweet != null) { Console.WriteLine("Tweet sent: " + tweet.Text); } }
public async Task CreateMediaMetadataAsync_WithNullAltText_Throws() { ulong mediaID = 521449660083609601ul; string altText = null; TwitterContext ctx = await InitializeTwitterContext(); await L2TAssert.Throws <ArgumentNullException>( async() => await ctx.CreateMediaMetadataAsync(mediaID, altText)); }
public async Task CreateMediaMetadataAsync_WithZeroMediaID_Throws() { ulong mediaID = 0; string altText = "Sample media description"; TwitterContext ctx = await InitializeTwitterContext(); await L2TAssert.Throws <ArgumentNullException>( async() => await ctx.CreateMediaMetadataAsync(mediaID, altText)); }
static async Task CreateMetadataAsync(TwitterContext twitterCtx) { string status = "Testing video upload tweet #Linq2Twitter £ " + DateTime.Now.ToString(CultureInfo.InvariantCulture); byte[] imageBytes = File.ReadAllBytes(@"..\..\..\images\TwitterTest.mp4"); const ulong JoeMayoUserID = 15411837; var additionalOwners = new ulong[] { JoeMayoUserID }; string mediaType = "video/mp4"; string mediaCategory = "tweet_video"; Media media = await twitterCtx.UploadMediaAsync(imageBytes, mediaType, additionalOwners, mediaCategory); Media mediaStatusResponse = null; do { if (mediaStatusResponse != null) { int checkAfterSeconds = mediaStatusResponse?.ProcessingInfo?.CheckAfterSeconds ?? 0; Console.WriteLine($"Twitter video testing in progress - waiting {checkAfterSeconds} seconds."); await Task.Delay(checkAfterSeconds * 1000); } mediaStatusResponse = await (from stat in twitterCtx.Media where stat.Type == MediaType.Status && stat.MediaID == media.MediaID select stat) .SingleOrDefaultAsync(); } while (mediaStatusResponse?.ProcessingInfo?.State == MediaProcessingInfo.InProgress); if (mediaStatusResponse?.ProcessingInfo?.State == MediaProcessingInfo.Succeeded) { await twitterCtx.CreateMediaMetadataAsync(mediaStatusResponse.MediaID, "LINQ to Twitter Alt Text Test"); Status tweet = await twitterCtx.TweetAsync(status, new ulong[] { media.MediaID }); if (tweet != null) { Console.WriteLine($"Tweet sent: {tweet.Text}"); } } else { MediaError error = mediaStatusResponse?.ProcessingInfo?.Error; if (error != null) { Console.WriteLine($"Request failed - Code: {error.Code}, Name: {error.Name}, Message: {error.Message}"); } } }
public async Task CreateMediaMetadataAsync_WithValidParameters_Succeeds() { ulong mediaID = 521449660083609601ul; string altText = "Sample media description"; TwitterContext ctx = await InitializeTwitterContext(); await ctx.CreateMediaMetadataAsync(mediaID, altText); execMock.Verify(exec => exec.SendJsonToTwitterAsync( It.IsAny <string>(), "https://upload.twitter.com/1.1/media/metadata/create.json", It.IsAny <IDictionary <string, string> >(), It.IsAny <MediaMetadata>(), It.IsAny <CancellationToken>()), Times.Once()); }