public static async Task <bool> MainAsync() { try { Console.WriteLine("Starting demo of InstagramApiSharp project"); // create user session data and provide login details var userSession = new UserSessionData { UserName = "******", Password = "******" }; // if you want to set custom device (user-agent) please check this: // https://github.com/ramtinak/InstagramApiSharp/wiki/Set-custom-device(user-agent) var delay = RequestDelay.FromSeconds(2, 2); // create new InstaApi instance using Builder api = InstaApiBuilder.CreateBuilder() .SetUser(userSession) .UseLogger(loggerFactory) // use logger for requests and debug messages .SetRequestDelay(delay) .Build(); var session = new FileSessionHandler(loggerFactory.CreateLogger <FileSessionHandler>(), api, new EncryptedSerializer( new PlainSerializer(), api, new SimpleEncryptor())); // create account // to create new account please check this: // https://github.com/ramtinak/InstagramApiSharp/wiki/Create-new-account try { session.Load("state.bin"); } catch (Exception e) { Console.WriteLine(e); } if (!api.IsUserAuthenticated) { // login Console.WriteLine($"Logging in as {userSession.UserName}"); delay.Disable(); var logInResult = await api.LoginAsync().ConfigureAwait(false); delay.Enable(); if (!logInResult.Succeeded) { Console.WriteLine($"Unable to login: {logInResult.Info.Message}"); return(false); } } session.Save("state.bin"); Console.WriteLine("Press 1 to start basic demo samples"); Console.WriteLine("Press 2 to start upload photo demo sample"); Console.WriteLine("Press 3 to start comment media demo sample"); Console.WriteLine("Press 4 to start stories demo sample"); Console.WriteLine("Press 5 to start demo with saving state of API instance"); Console.WriteLine("Press 6 to start messaging demo sample"); Console.WriteLine("Press 7 to start location demo sample"); Console.WriteLine("Press 8 to start collections demo sample"); Console.WriteLine("Press 9 to start upload video demo sample"); var samplesMap = new Dictionary <ConsoleKey, IDemoSample> { [ConsoleKey.D1] = new InstaBasics(api), [ConsoleKey.D2] = new InstaUploadPhoto(api), [ConsoleKey.D3] = new InstaCommentMedia(api), [ConsoleKey.D4] = new InstaStories(api), [ConsoleKey.D5] = new InstaSaveLoadState(api), [ConsoleKey.D6] = new InstaMessaging(api), [ConsoleKey.D7] = new InstaLocationSample(api), [ConsoleKey.D8] = new InstaCollectionSample(api), [ConsoleKey.D9] = new InstaUploadVideo(api) }; var key = Console.ReadKey(); Console.WriteLine(Environment.NewLine); if (samplesMap.ContainsKey(key.Key)) { await samplesMap[key.Key].DoShow().ConfigureAwait(false); } Console.WriteLine("Done. Press esc key to exit..."); key = Console.ReadKey(); return(key.Key == ConsoleKey.Escape); } catch (Exception ex) { Console.WriteLine(ex); } return(false); }