Telegram бот посылает сообщения в канал

Telegram — новый месендежер быстро набирающий популярность. Заинтересовал меня возможностью посылать сообщения на мобильный телефон  бесплатно. На первый взгляд оказалось все очень запутанно, однако для этой задачи оказалось, что можно сильно не погружаться.

Задача: Пересылать текстовое сообщение на мобильные телефоны от работающего C# приложения.

Решение:

  1. Создать аккаунт в Telegram. Получить свой логин, он начинается согласно требованию платформы с символа @
  2. Скачиваем и устанавливаем десктоп версию программы
  3. Добавляем в список контактов бота @BotFather
  4. Нужно отправить команду боту, для этого нужно написать ему сообщение /start, а потом /newbot
  5. В тексте сообщения от бота о нашем процессе создания, теперь нужно написать имя бота (name). Имя должно быть на английском уникальным и оно должно оканчиваться на bot
  6. Теперь запрашивается имя бота в контакт листе  username, тоже должно оканчиваться на bot
  7. Бот был создан, скопируйте токен (token) ключ. Он необходим для разработки
  8. Создаем канал, для этого в главном меню выбираем создать канал.  Даем имя testchanel111
  9. Наблюдаем окно с выбором доступности канала. У меня канал приватный, так как он будет использоваться только мной. Однако для того чтобы бот мог с ним взаимодействовать, а именно посылать сообщения, он должен быть публичным. Для чего вбиваем урл для доступа к каналу.
  10. В настройках канала (View chanel Info) нажимаем на ссылку с названием 1 administartor , там жмем ссылку ADD ADMINISTRATOR туда вводим имя  нашего бота name Теперь наш бот администратор, а значит может создавать контент в ней
  11. В проекте студии VS 2015 подключаем библиотеку MrRoundRobin/telegram.bot
  12. Код для работы бота
    var chatId = "testchanel111" //имя канала
    var message = "*bold text*"; // информация о формате текста сообщения https://tlgrm.ru/docs/bots/api#formatting-options
    var bot = new TelegramBotClient(tokenKey);//инициализация
    var msg = await Bot.SendTextMessageAsync(chatId, message, false, false, 0, null, ParseMode.Markdown); // тип парсинга сообщения Markdown
    log.Info(string.Format("Message id = {0}, chat id = {1}",  msg.MessageId, msg.Chat.Id));
    ВНИМАНИЕ! msg.Chat.Id — содержит id канала в системе, что позволяет также получить доступ не по имени канала (начинается с @) а по этому id. ЗНАЯ ID МОЖНО ПОЛУЧИТЬ ДОСТУП ДАЖЕ К ПРИВАТНОМУ КАНАЛУ.
    msg.MessageId — это id сообщения по которому к нему можно получить доступ, если необходимо
  13. Можно взаимодействовать с публичным каналом, однако мне нужен частный канал и я сделаю его приватным, а доступ получу по его id. Пользователь может открыть до 5ти публичных каналов.
    Получить id канала еще можно в web версию месенджера по адресу
    Выберите интересующую нас группу и в адресной строке можно увидеть адрес с цифрами. Выделенные цифры это код группы, добавьте к началу этого кода симыолы -100 и получим id канала (получится -100777000).
  14. Устанавливаем Telegram на телефон и получаем оповещения. Все пользователи приглашенные в этот канал будут получать мгновенные оповещения.

Пунктов много, однако в целом все довольно просто и логично