private void button1_Click(object sender, EventArgs e) { Console.WriteLine("Telegram Remote Alert v0.1\n\n"); //if (args.Length == 0) //{ // Console.WriteLine("사용 예) TelegramRemoteAlert.exe \"보낼 내용\""); // return; //} string text = "test http://www.naver.com"; string errorMessage = null; string chatid = "-1001071680690"; string token = "185429576:AAEXEyfvPalLku4FAkUDsTFJM89jmIyQJG8"; bool ret = TelegramBot.SendMessage(token, chatid, text, out errorMessage); if (ret) { Console.WriteLine(String.Format("발송: {0}", text)); } else { Console.WriteLine(String.Format("오류: {0}", errorMessage)); } }
public static void AssingTicket(User user, Issue issue, Message message, string assignee, TelegramBot bot, Jira jiraConn) { int state = user.State - 1; //безумный костыль для того, чтобы вычислять статус, который нужно перевсети пользоваетля. Так получилось, что это 3 для 4 статуса, и 5 для 6 статуса. string keyboard = null; if (state == 3) { keyboard = "{\"keyboard\": [[\"Проверь тикеты\"], [\"Кто сейчас дежурит?\"], [\"Помоги с дежурством\"], [\"Пока ничего\"]],\"resize_keyboard\":true,\"one_time_keyboard\":true}"; } try { issue.Refresh(); if (issue.Assignee == null & issue.Key.Value.Equals(user.TicketNumber)) { if (issue.Status.ToString() == "10050") { issue.WorkflowTransition("Распределить"); } issue.Assignee = assignee; issue.SaveChanges(); user.State = state; user.TicketNumber = ""; bot.SendMessage(message.chat.id, "Готово.", keyboard); } else { user.State = state; user.TicketNumber = ""; bot.SendMessage(message.chat.id, "Тикет уже распределён", keyboard); } } catch (Exception ex) { using (var repository = new Repository<DutyBotDbContext>()) { var logReccord = new Log { Date = DateTime.Now, MessageTipe = "error", UserId = message.chat.id, Operation = "AssingTicket", Exception = ex.GetType() + ": " + ex.Message, AddInfo = issue.Key.Value }; repository.Create(logReccord); } user.State = 3; user.TicketNumber = ""; bot.SendMessage(message.chat.id, "Что-то пошло не так.", "{\"keyboard\": [[\"Проверь тикеты\"], [\"Кто сейчас дежурит?\"], [\"Помоги с дежурством\"], [\"Пока ничего\"]],\"resize_keyboard\":true,\"one_time_keyboard\":true}"); } }
internal Messenger(List <TelegramBot> messengers) { foreach (var messenger in messengers) { messenger.Messenger = this; } _messengers = messengers; MessengerIds = _messengers.Select(m => m.Id).ToImmutableHashSet(); _defaultMessenger = messengers.First(m => m.ReciveMessages); }
private Parametr _botParam; //с каким ботом телеграмма работаем public void Start() //метод вызывается при старте службы { try { Sender.Send( "https://api.telegram.org/bot179261100:AAGqaQ8Fum0xK8JQL0FE_N4LugS_MmO36zM/sendmessage?chat_id=38651047&text=" + "Запущен сервис DutyBot"); try { using (var repository = new Repository<DutyBotDbContext>()) { var logReccord = new Log { Date = DateTime.Now, MessageTipe = "info", UserId = 0, Operation = "StartService", Exception = "", AddInfo = "" }; repository.Create(logReccord); } } catch (Exception ex) { Thread.Sleep(30000); // еcли не доступна БД и не получается залогировать запуск, ждём 30 секунд и пробуем еще раз. try { using (var repository = new Repository<DutyBotDbContext>()) { var exReccord = new Log { Date = DateTime.Now, MessageTipe = "error", UserId = 0, Operation = "StartService", Exception = ex.GetType() + ": " + ex.Message, AddInfo = "" }; repository.Create(exReccord); var logReccord = new Log { Date = DateTime.Now, MessageTipe = "info", UserId = 0, Operation = "StartService2", Exception = "", AddInfo = "" }; repository.Create(logReccord); } } catch { Sender.Send( "https://api.telegram.org/bot179261100:AAGqaQ8Fum0xK8JQL0FE_N4LugS_MmO36zM/sendmessage?chat_id=38651047&text=Произошла ошибка при запуске службы. Подождал 10 секунд, попробовал еще раз, но ошибка осталась: " + ex); } } using (var repository = new Repository<DutyBotDbContext>()) //инициализирую парамтры приложения { _botParam = repository.Get<Parametr>(p => p.Name == "TelegramBot"); _jiraParam = repository.Get<Parametr>(p => p.Name == "jira"); _userLoginParam = repository.Get<Parametr>(p => p.Name == "dafaultuserlogin"); _userPasswordParam = repository.Get<Parametr>(p => p.Name == "dafaultuserpassword"); _filterParam = repository.Get<Parametr>(p => p.Name == "Filter"); } _bot = new TelegramBot(_botParam.Value); BufferBlock<Message> queue = new BufferBlock<Message>(); Task.WhenAll(ReadMessages(queue), ProcessMessages(queue), Checkjira(), queue.Completion); //запускаю задачи по считыванию и обработке сообщений из telegramm } catch (Exception ex) { Sender.Send( "https://api.telegram.org/bot179261100:AAGqaQ8Fum0xK8JQL0FE_N4LugS_MmO36zM/sendmessage?chat_id=38651047&text=" + ex.Message); using (var repository = new Repository<DutyBotDbContext>()) { var logReccord = new Log { Date = DateTime.Now, MessageTipe = "fatal", UserId = 0, Operation = "StartService", Exception = ex.GetType() + ": " + ex.Message, AddInfo = "" }; repository.Create(logReccord); } } }
public Messenger() { var token = Configuration.Config.GetSection("telegram_token").Value; _messenger = new TelegramBot(token, true); }