public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.Configure <Config>(Configuration); var settings = Configuration.Get <Config>(); Bot.Init(settings.TelegramConfig.BotToken, settings.TelegramConfig.BotName); if (settings.Ngrok) { var ngrockUrl = Ngrok.GetTunnelUrl(); Bot.Api.SetWebhookAsync(ngrockUrl + TelegramBotMessage).Wait(); } else { Bot.Api.SetWebhookAsync(settings.HostUrl + TelegramBotMessage).Wait(); } }
// Creates local server and opens it to web public static void CreateServer() { ws = new WebSocketServer(); try { ws.Setup(25000); ws.NewSessionConnected += Ws_NewSessionConnected; ws.NewMessageReceived += Ws_NewMessageReceived; ws.SessionClosed += Ws_SessionClosed; ws.Start(); Console.WriteLine("Local server running on port 25000"); ngrok = new Ngrok(ProgramData.Directory + "bin\\ngrok.exe", ProgramData.NgrokToken); ngrok.Options = new NgrokOptions() { CloseIfRunning = true, Region = "eu", Type = "tcp" }; ngrok.Expose(25000); // GET IP OF THE NGROK SERVER string ip; while ((ip = ngrok.GetIP()).Length < 8) { Thread.Sleep(5000); } try { Console.WriteLine("Uploading data..."); Controller.APIWrapper.getUser().CreateDevice(Controller.DEVICE_ID, GetIPv4(), ip, ""); } catch (Exception e) { Console.WriteLine("Error whilst updating ngrok: " + e.Message); } } catch (Exception e) { Console.WriteLine("Server could not be created."); Console.WriteLine(e.Message); } finally { Console.WriteLine("Server started."); } }