как узнать логин чата в телеграмм (7)
Я использовал telegram_bot и пытался получить идентификатор groupChat для отправки уведомлений в групповой чат, но не знаю, какие методы я должен использовать для этого.
Для получения идентификатора чата я использую message.chat.id, когда бот участвует в чате, но который я должен использовать для получения идентификатора группового чата, не могу найти /
Вот последовательность, которая работала для меня после нескольких часов борьбы:
Предположим, имя бота my_bot .
3- Перейдите по следующему адресу: https://api.telegram.org/botXXX:YYYY/getUpdates
замените XXX: YYYY на свой токен бота
4- Ищите «чат»:
-zzzzzzzzzz — это идентификатор вашего чата (с отрицательным знаком).
5- Тестирование: вы можете проверить отправку сообщения в группу с помощью локона:
curl -X POST «https://api.telegram.org/botXXX:YYYY/sendMessage» -d «chat_id=-zzzzzzzzzz
Если вы пропустите шаг 2, обновлений для группы, которую вы ищете, не будет. Также, если есть несколько групп, вы можете найти имя группы в ответе («title»: « group_name »).
How to use Python to get Telegram channel messages and users list
Надеюсь это поможет.
Вы можете получить идентификатор группы таким же образом. Он появляется в теле сообщения как message.chat.id и обычно это отрицательное число, где обычные чаты являются положительными.
Идентификаторы групп и идентификаторы чата могут быть получены только из полученного сообщения, нет доступных вызовов для извлечения активных групп и т. Д. При получении сообщения необходимо запомнить идентификатор группы и сохранить его в кеше или чем-то подобном.
Вы можете получить идентификатор чата таким образом.
В приватном чате с вашим ботом отправьте случайное сообщение. Вы будете искать это сообщение позже.
Получите свой API-токен у bot_father: XXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY
Затем в вашем браузере сделайте запрос с этим URL:
https://api.telegram.org/botXXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY/getUpdates
Запрос возвращает ответ json, в тексте json найдите random message и получите идентификатор чата в этом объекте.
Используя python и telethon, очень легко получить идентификатор чата. Это решение лучше всего подходит для тех, кто работает с Telegram API.
Если у вас нет telethon, запустите это:
pip install telethon
Если у вас нет зарегистрированного приложения с telegram, зарегистрируйте его: Ссылка такая: https://my.telegram.org/
Затем запустите следующий код:
from telethon import InteractiveTelegramClient from telethon.utils.tl_utils import get_display_name client = InteractiveTelegramClient(‘session_id’, ‘YOUR_PHONE_NUMBER’, api_id=1234YOURAPI_ID, api_hash=’YOUR_API_HASH’) dialog_count = 10 dialogs, entities = client.get_dialogs(dialog_count) for i, entity in enumerate(entities): i += 1 # 1-based index print(‘<>. <>. id: <>’.format(i, get_display_name(entity), entity.id))
Возможно, вы захотите отправить сообщение в вашу группу, чтобы группа появилась вверху списка.
How to get API ID & API HASH of a Telegram Account | No Errors | By Bemro
По состоянию на середину 2018 года просто:
После присоединения он выведет JSON-файл, в котором ваш идентификатор чата будет расположен по адресу message.chat.id .
«message»: < «chat»: < «id»: -210987654, «title»: . «type»: «group», . >. >
Чтобы получить идентификатор группового чата, сделайте следующее:
- Добавьте Telegram BOT в группу.
- Получить список обновлений для вашего BOT:
https://api.telegram.org/bot/getUpdates
https://api.telegram.org/bot123456789:jbd78sadvbdy63d37gda37bd8/getUpdates
Это образец ответа, когда вы добавляете свою BOT в группу.
- Используйте «id» объекта «chat» для отправки ваших сообщений.
Message ├ message_id: 338 ├ from ┊ ├ id: ***** ┊ ├ is_bot: false ┊ ├ first_name: 사이드 ┊ ├ username: ****** ┊ └ language_code: en ├ chat ┊ ├ id: -1001118554477 // This is Your Group id ┊ ├ title: Test Group ┊ └ type: supergroup ├ date: 1544948900 └ text: A
2 🙂 используйте неофициальный мессенджер, такой как Plus Messenger, и посмотрите идентификатор вашей группы в информации о группе / канале
Источник: code-examples.net
Телеграм оповещения в приватных каналах
Пишем систему оповещения через приватный канал в Telegram. В предыдущей статье я писал как можно совместить несовместимое, то есть асинхронное приложение с синхронной работой. В задаче оповещений тоже есть несколько тонкостей. Например задача по поимке chat id приватного канала.
Обратимся к хорошо известному tornado , так как приложение будет работать по http . То есть мы будем наше сообщение отправлять в виде аргумента http запроса к телеграм боту. tornado будет слушать 80 порт и обрабатывать запросы, и передавать сообещения в наш приватный канал. Неплохо когда части программы существуют отдельно и развязны между собой посредством какого-то транспорта.
Создаем виртуальное окружение и добавляем следующие необходимые модули:
$ virtuaenv -p python2.7 env $ source env/bin/activate (env)$ pip install pyTelegramBotAPI tornado
Тонкости телеграм
Получим chat id для канала
$ nano telegram.py
После запуска бота мы получим chat_id
(env) $ python telegram.py -1001100397557
Напишем бота рассылок
Переводим канал в приватный, если это необходимо и теперь можно написать бота который будет оповещать. Так как по имени в приватный канал не получится отправлять сообщение.
$ nano telegram.py
Таким образом мы можем отправить сообщение в наш канал сделав простой GET запрос.
Источник: www.sinyawskiy.ru
Как получить id чата telegram python
Для начала давайте определимся с тем что такое бот. Бот представляет из себя интерфейс telegram с помощью которого может вызываться любая программа. То есть это прослойка между чатом в вашем телефоне и кодом на компьютере или сервере, помогающая отправить и получить данные в чате.
С ботом можно начать диалог как и с обычным человеком, или добавить его в группу. Разница в том, что бот понимает только ограниченный набор заранее заданных команд, которые передаются в программу. В зависимости от логики программы, бот может отвечать в чат или выполнять любые другие действия, доступные языку программирования на котором написан код. То есть можно, например, получить данные из базы данных, найти нужный файл, сохранить изображение и еще много чего.
Схематично это взаимодействие выглядит примерно так:
Папа ботов
Для того, чтобы создать своего бота, необходимо обратиться с этой просьбой к отцу всех ботов:) На полном серьезе.
Пишем ему сообщение /help и получаем перечень всех команд для botfather.
Здесь мы не будем подробно останавливаться на описании каждой команды. Сейчас нас интересует только создание нового бота. Это команда /newbot. Отправим её botfather и посмотрим что будет.
При получении этого сообщения botfather начинает процесс создания и просит вас задать имя для вашего нового бота, а затем и username. Разница в том, что имя может быть любым, тогда как username обязательно должно оканчиваться на «bot» (для того чтобы человек сразу понимал, что общается с ботом, а не с другим человеком). Для упрощения мы зададим одинаковые имя и username нашему боту.
После того, как название выбрано, botfather присылает нам токен бота.
Токен – это уникальный идентификатор нашего бота. Точка связи между ботом и кодом на сервере/компьютере. Именно по нему наш код будет обращаться к боту и попадать туда куда нужно, а бот в свою очередь идентифицировать то, что обращаются именно к нему.
На этом наше общение с botfather окончено.
Пишем функционал бота
Переходим ко второй части создания бота – написанию кода. В этой статье мы будем рассматривать в качестве основы python, который для начла нужно установить, если он у вас еще не установлен. Сделать это можно на официальном сайте python просто следуя инструкциям установщика.
После того как питон установлен, нам нужно установить библиотеку telepot, обеспечивающую взаимодействие python с telegram. Сделать это можно за 5 секунд. Открываем командную строку и пишем там $ pip install telepot.
В случае успешной установки мы увидим, Successfully installed. Вот как это выглядит у меня после всего «птичьего текста» процесса установки.
Описание всего функционала библиотеки доступно здесь. Написано легко и понятно. Но на английском.
Теперь у нас есть python и библиотека telepot, позволяющая взаимодействовать с telegram. Время написать простой код.
import telepot from pprint import pprint bot = telepot.Bot(‘***** Сюда надо вставить токен, полученный у botfather *****’) response = bot.getUpdates() pprint(response)
Здесь мы подключили библиотеки telepot и pprint, добавили токен, полученный нами ранее у botfather, послали запрос боту на то чтобы он отправил нам последние сообщения (bot.getUpdates()) и вывели результат на экран. Полученное сообщение выглядит так:
, ‘date’: 1465283242, ‘from’: , ‘message_id’: 10772, ‘text’: ‘Hello’>, ‘update_id’: 100000000>
Как мы видим, сообщение представляет собой массив, представленный в виде словаря python. Сообщение содержит в себе идентификатор чата (id), то, с кем ведется чат (first_name), тип чата, дату сообщения, от кого получено сообщение, номер сообщение и собственно сам текст. Вообще наполнение полученного сообщения постоянно обновляется, поэтому вполне вероятно, что когда вы будете читать этот текст, в ответе будет приходить гораздо больше параметров. Актуальная версия описания всегда доступна в описании api на официальном сайте telegram.
Теперь, когда мы знаем как выглядит сообщение, можно написать простого бота-калькулятора. Код будет выглядеть следующим образом:
import telepot from telepot.loop import MessageLoop TOKEN = ‘***** Сюда надо вставить токен, полученный у botfather *****’ bot = telepot.Bot(TOKEN) def handle(msg): «»» Process request like ‘3+2’ «»» content_type, chat_type, chat_id = telepot.glance(msg) text = msg[«text»] try: answer = eval(text) except: answer = «Can’t calculate :(» bot.sendMessage(chat_id, «answer: <>».format(answer)) MessageLoop(bot, handle).run_as_thread() # Keep the program running. while True: n = input(‘To stop enter «stop»:’) if n.strip() == ‘stop’: break
Здесь мы подключили библиотеку telepot, добавили информацию о токене бота, прочитали полученное сообщение и, если оно представляет собой математическую операцию, выполняем его функцией eval. В противном случае выводим сообщение о том, что калькуляция не возможна.
Для того, чтобы программа выполнялась, в конце добавлен цикл, выполняющий код до момента написания слова ‘stop’.
Запускаем код и проверяем результат в telegram. Все работает!
Нюансы
Есть несколько важных нюансов, которые нужно понимать при работе с ботами telegram:
- Бот сам не может являться инициатором беседы в чате. Это можете сделать только вы. До момента как вы напишете что-нибудь боту, он считается выключенным.
- Так как код python (и любой другой) запускается на компьютере или сервере, он будет выполняться только если компьютер/сервер доступен. То есть в случае если компьютер с кодом «заснул», отвалилась сессия или код завис — бот работать не будет. То же самое относится к серверу.
- Если компьютер/сервер с кодом бота перезагрузился, нужно запускать код заново, а так же инициировать беседу с ботом в telegram (см.п.1) иначе бот работать не будет.
- Есть два метода получения сообщений. Это getUpdates и webhooks. В этой статье описан метод getUpdates как наиболее простой для старта. Отличие getUpdates от webhooks в том что в первом случае ваш компьютер/сервер через заданные промежутки времени проверяет наличие новых сообщений, а во втором telegram сам отправляет новые сообщение при их наличии к вам на сервер. Webhooks меньше грузит и ваш сервер и сервера telegram, однако требует дополнительной настройки и наличия ssl сертификата.
Из ограничений готовых ботов и платформ-конструкторов можно отметить то, что в результате их популярности и большого количества пользователей, такие боты могут работать не стабильно в зависимости от нагруженности серверов, на которых размещены боты. Это может выражаться как в увеличенном времени реакции бота, так и в полном отсутствии реакции в части случаев.
Зачем все это:
Ключевой вопрос: «как можно применить бота?». Можно, например, научить бота python читать логи на предмет ошибок и выдавать сообщение если в процессе что-то пошло не так. Можно обрабатывать aml события и блокировать счета мошенников в реальном времени (привет sas-форум). Можно создать библиотеку знаний по нужной области рисков и отправлять нормативные документы по запросу.
Применить бот в работе рисковика можно. Все зависит от вашей фантазии и наличия открытых портов для api telegram в вашем банке 🙂
О том как научить вашего бота следить за событиями Google Calendar можно прочитать в этой статье.
Полезные ссылки:
Источник: www.rtportal.ru