Добрый день, коллеги. Возможно, что когда-нибудь я напишу статью о возможностях телеграма и почему он такой крутой, и что все вайберы, ватсапы давно остались позади, но сегодня мы разберем, как заставить его работать на нас. Когда-то давно, я пытался разобраться, как сделать свои уведомления в Lync/Skype for Business используя Orchestrator. Задача была в том, что хотелось в рамках RunBook’ов в System Center Orchestrator отправлять уведомления о разных событиях, но Microsoft до сих пор не сделают Integration Pack для этого. Понятно, что там просто есть нюансы платформы. Если вы используете SCOM, то там есть интеграция с Lync’ом и можно подписываться на события. Удобно? Удобно.
Я не буду подробно описывать процесс регистрации бота в телеграме, т.к. все инструкции есть, если вы добавите в контакты Отца Ботов ;) (@BotFather). /newbot — создание нового бота, /setname — его имя в ростере и /token — сам токен, который мы будет использовать в дальнейшем, остальные команды по-желанию.
После создания бота, добавляем его в наш канал и читаем Telegram Bot API. Нас интересует раздел sendMessage для которого мы скормим JSON и передадим по http.
Листинг powershell скрипта до ужаса простой.
1 2 3 4 5 6 7 8 9 |
param( [string]$id, [string]$message ) $bot_token = "ВАШ_ТОКЕН" $uri = "https://api.telegram.org/bot$bot_token/sendMessage" Invoke-WebRequest -Method Post -Uri $uri -ContentType "application/json;charset=utf-8" -Body (ConvertTo-Json -Compress -InputObject @{chat_id=$id; text=$message}) |
Самое главное это добавить ваш токен, который выдал вам @BotFather. Затем в скрипт передаем 2 параметра -id и -message. ID — это id канала или пользователя, ниже будет, где брать эти ID и message — само сообщение.
.\telegram2.ps1 -id «-1001063999033» -message «Отправляем сообщения через Telegram Bot API — подробности на masyan.ru»
А где брать ID канала или пользователя? У телеграма два способа общения с ботами. Первый это бот забирает с серверов телеграма данные, либо использовать вебхук (webhook), но это отдельная история и о ней мы поговорим, когда разберемся, как тоже самое делать в slack’e.
Сейчас нас интересует метод getUpdates, вот он то и даст нам нужные ID каналов и пользователей, а самые любопытные найдут там много всего интересного, включая реплаи на сообщения, входы пользователей на канал и т.д.
1 |
(Invoke-WebRequest -Uri 'https://api.telegram.org/botВАШ_ТОКЕН/getUpdates').Content |
Из этого вывода нас интересует раздел chat и его id. Вот его то и подставляем в параметры скрипт, как ID.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
{ "update_id":327786374, "message": { "message_id":17, "from": { "id":25980975, "first_name":"Anton", "last_name":"Masyan", "username":"masyan" }, "chat": { "id":-1001063999033, "title":"Rambler Notification", "type":"supergroup" }, "date":1464170214, "reply_to_message": { "message_id":10, "from": { "id":202343367, "first_name":"SCCM", "username":"sccm_bot" } |
Во второй части посмотрим, где это можно использовать с пользой.
Напомню, что у нас есть клевая группа в фейсбуке по SCCM — https://www.facebook.com/groups/sccm.russia/, где уже больше сотни человек и каждый день там появляются разные интересные вопросы, так что присоединяйтесь.
Кроме этого, у нас создан канал в телеграме — IT Talks — https://telegram.me/ittalks Я не знаю, что из этого получится, но время покажет. И отдельный канал по SCCM — https://telegram.me/configmgr Он пока малочисленный, но пусть будет.
Антон, и что ж такого в «телеграмме» хорошего?? То что его сломали недавно в МСК на одном семинаре по безопасности за 5 минут и прочитали переписку того, кого сломали, слали сообщения от его имени?? Возможно по удобству он обойдет и вайбер, но все эти метания.. У меня еще толпа народу кто сидит в icq 2008 и никуда не собирается.. И правильно делают наверно.
ну это очень громкое заявление. ;) вангую, что там был прямой доступ к устройству, отключена двухфакторная аутентификация и еще что-нибудь. далее, вы можете использовать secret chat, о них можно почитать отдельно. Изначально, я разбирался со слаком, а телеграм пошел, как не такой энтерпрайзно-ориентированный, как более популярный. У вас много контактов в вайбере — ок, у меня уже 90% всех людей в телеграме, подписки на большое кол-во каналов и ботов, нормальный десктопный клиент и нормальная работа синхронихации на нескольких устройствах. Ну и мне просто захотелось, я запостил. ;)
Добрый день. А вторая часть будет ?
мужик спасибо за гет контент!!
только у тебя нашел((((
Здравствуйте. все сделал как написано но при отправки русскими буквами в телеграмме тока вопросы появляются. Если анг то все норм не подскажите куда копать?
Invoke-WebRequest : Базовое соединение закрыто: Непредвиденная ошибка при передаче.