Простой способ отправлять сообщения в Telegram

Андрей К…
Последнее изменение:
9
1
0

Пару слов о том, как настроить отправку сообщений в телеграм (и при этом не надо программировать, ну, необязательно).

Для данной статьи я создал очередного бота, и даже не буду прятать АПИ ключи, т.к. мне его не жалко. По мере прочтения вы можете использовать его, хотя я вам советую создать своего бота, и не давать АПИ ключи никому.

Создание бота

Итак, первое, что нужно сделать, это завести бота. Для этого в списке контактов найдите @BotFather.  Это специальный бот от телеграмма, он нужен для заведения ботов. Я пользуюсь в данном случае web.telegram.org, это удобно, не нужно ничего перекидывать с телефона на комп.

Найдите @BotFather, и отправьте ему три команды: /newBot (прям так напишите, как на скриншоте), и два раза укажите имя нового бота. Важно, имя бота должно заканчиваться на “bot” – таковы требования.  

После этого  BotFather ответит вам, что всё ОК, и вернет ключ для API, который потребуется в дальнейшем. Для экспериментов пока что можете взять мой ключ - 515479662:AAF1wTj2Xcb3HVURbc_5DbZ9qiz4ddds9iQ.


Реклама


Подключение

Теперь, в списке контактов найдите созданного вами бота по имени (в моем случае, BablofilDemoBot), и нажмите кнопку start. Это важно, т.к. бот не может сам навязываться к людям.

После этого откройте в браузере вот такую ссылку

https://api.telegram.org/bot515479662:AAF1wTj2Xcb3HVURbc_5DbZ9qiz4ddds9iQ/getUpdates

(для своего бота замените АПИ ключ на свой, вот так https://api.telegram.org/botAPIAPIAPIAPIAPI/getUpdates). Вы должны увидеть примерно тоже, что и на скриншоте – последнюю активность бота – кто подключился, кто что написал и т.п. Если там пусто, напишите в телеграме боту какую-нибудь чушь и обновите страницу. Ваша итоговая цель – найти chat_id

Я выделил то, что вам нужно найти. ВНИМАНИЕ – если пользуетесь моим ботом, то имейте в виду, что его мог подключить кто угодно, поэтому вы можете найти чужой chat_id – проверяйте, что тут упоминается ваш ник. А лучше заведите отдельного бота) Иначе кто угодно сможет вам писать от имени бота – API ключи-то известны всем.  


Реклама


Отправка сообщения

На этом шаге вы знаете API ключ и chat_id. Осталось только написать сообщение.

Откройте в браузере такую ссылку:

https://api.telegram.org/bot515479662:AAF1wTj2Xcb3HVURbc_5DbZ9qiz4ddds9iQ/sendMessage?chat_id=303964420&text=PING

Соответственно, замените API, chat_id и текст сообщения на свои. Я отправляю слово PING как сообщение бота.

https://api.telegram.org/botAPIAPIAPI/sendMessage?chat_id=CHATID&text=TEXT

Ииииии… Бот присылает вам сообщение в телеграм.

Ну, а теперь, если вы хотите отправлять сообщения себе или в группу (ах да, если хотите в группу, то добавьте бота в группу и снова получите chat_id, только уже группы) из скрипта, то просто дергайте ссылку с помощью, скажем, вот такого кода:

import urllib.request
urllib.request.urlopen("""
    https://api.telegram.org/bot{API_TOKEN}/sendMessage?chat_id={CHAT_ID}&text={TEXT}
""".format(
    API_TOKEN = '515479662:AAF1wTj2Xcb3HVURbc_5DbZ9qiz4ddds9iQ',
    CHAT_ID = '303964420',
    TEXT = 'TEST TEST TEST'
))

Вот и всё… Удачи в написании ботов :)

 

 

 

Комментарии: (9)
25.02.2018 14:41
спасибо. будем разбираться
01.03.2018 11:01
Подскажите пожалуйста как отсылать то что в данный момент выводит print в консоль?
01.03.2018 11:33
Допустим, у вас выводится 
print("aaa", 123, "bbb")

Это три параметра, из которых две строки и одно число. Вам нужно объединить это всё в одну строку. Самый простой способ - это с помощью оператора +

Например, 
message = "aaa" + str(123) + "bbb"
Получится так: aaa123bbb. Можно добавить пробелы 
message = "aaa" + " " + str(123) + " "  + "bbb"

Более правильный способ - использовать оператор format. В данном случае будет так
message = "{0} {1} {2}".format("aaa", 123, "bbb")
Так же, если хотите, можете использовать именованные параметры.

В любом случае, потом просто вставляете код и подставляете message и прочие параметры.

import urllib.request
urllib.request.urlopen("""
    https://api.telegram.org/bot{API_TOKEN}/sendMessage?chat_id={CHAT_ID}&text={TEXT}
""".format(
    API_TOKEN = '515479662:AAF1wTj2Xcb3HVURbc_5DbZ9qiz4ddds9iQ',
    CHAT_ID = '303964420',
    TEXT = message
))
10.03.2018 20:28
Здравствуйте.
У меня не работает. Мак, питон 3.6.4
запускаю из файла по F5
выдает ошибки:
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)
и
urllib.error.URLError: <urlopen (_ssl.c:777)="" [ssl:="" certificate="" certificate_verify_failed]="" error="" failed="" verify="">

в чем дело?</urlopen>
10.03.2018 20:44
Отвечаю сам себе )))
Надо зайти в папку с установленным питоном и ткнуть исталлятор сертификатов: "Install Certificates.command"
После инсталляции проблема исчезла.
10.03.2018 23:46
Возникла еще проблема с кодировкой.
TEST - это хорошо, но хотелось бы отправлять мессаги на кириллице. А с этим облом...
В общем я гуглил и методом научного тыка пытался решить эту проблему целый ночер, но безрезультатно.
Решения из космоса не подходят. Там либо винда, либо питон 2.7
Получаю: UnicodeEncodeError: 'ascii' codec can't encode characters in position 89-91: ordinal not in range(128)
Напомню, МАК ОС, Питон 3.6
Кто решил проблему, отзовитесь, плиз.
14.03.2018 12:11
Попробуйте так:
Сначала установите модуль requests - в командной строке выполните
pip install requests
и пользуйтесь таким вариантом кода:

import requests
requests.get("""
    https://api.telegram.org/bot{API_TOKEN}/....
))
13.09.2018 19:54
Телега заблочена, соответственно ссылка не работает, как исправить, чтоб команда воспринималась в обход блокировок оператора?
Пожалуйста, Авторизуйтесь что бы оставить свой комментарий