Как получить id канала Telegram для бота

Я просто типичный член GROUP (и, следовательно, я не могу использовать там никаких ботов . ), Поэтому я не могу найти способ, как получить идентификатор GROUP.

T.Todua 31 Июл 2017 в 13:57

7 ответов

Лучший ответ

Если вы являетесь участником группы, вы должны получать updates из этой группы, когда в ней есть какие-либо действия. Обновления будут содержать chats элемент списка, из которого вы можете получить Channel , который имеет следующие соответствующие поля:

id: group_id, title: «the_group_title», username: «group_username»
Charles Okwuagwu 8 Авг 2017 в 13:32

Новое обновление
Просто переслать сообщение с вашего канала этому боту: (https://telegram.me/getidsbot)

Обновление
1: Перейти (https://web.telegram.org)
2. Перейдите в свой Gorup и найдите ссылку на Gorup (https://web.telegram.org / # / им ? р = g154513121 )
3: Скопируйте это число после g и поставьте (-) перед этим -154513121
4: Отправить сообщение в Gorup bot.sendMessage(-154513121, «Hi»)

БОТ ДАЕТ СИГНАЛ ДЛЯ LUCKY JET


Я проверил сейчас и работаю как шарм

Надеюсь, это поможет.

Sedric Heidarizarei 16 Дек 2018 в 08:56

Пригласите своего бота в свою группу

И используйте свой бот, чтобы текст / myid

Затем используйте API GetUpdates, у вас будет идентификатор вашей группы

Eddie Lim 14 Дек 2018 в 06:01

По моему опыту, есть две популярные библиотеки,

python-Telethon —>Telegram Client Library(uses api_id,api_hash) python-Telegram-bot —->Telegram Bot (uses api token)

Есть много способов получить user_id, group_id, channel_id. Чтобы получить эти идентификаторы, используйте клиентскую библиотеку Telethon

from telethon import TelegramClient,sync api_id=»xxx» #get from telegram website api_hash=»yyy» #get from telegram website client=TelegramClient(session_object,api_id,api_hash) client.start() #To get the channel_id,group_id,user_id for chat in client.get_dialogs(): print(‘name: ids: is_user: is_channel is_group:’.format(chat.name,chat.id,chat.is_user,chat.is_channel,chat.is_group))

Это все, что будет напечатано имя и идентификатор канала, группы, пользователя. Кроме того, он проверит, принадлежит ли идентификатор каналу, группе или пользователю.

Как правило, идентификатор канала начинается с отрицательного (например, -1001109500936), начинается с (-100) идентификатора группы в норме и начинается с отрицательного идентификатора пользователя, начинается с положительного

Другой способ — использовать приложение «плюс мессенджер». Просмотреть все группы, каналы, идентификаторы пользователей.

Еще один простой способ,

client=TelegramClient(session,api_id,api_hash) client.start() destination_entity_name=»Type User(may be bot) or group or channel name» entity=client.get_entity(destination_entity_name) print(entity.stringify()) #All paratmeters print(entity.id) #user(bot also considered as user) or group
Vintage Coder 28 Мар 2019 в 07:21

После нескольких часов я смог найти идентификатор группы с помощью CuteGram приложение.

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

Откройте там группу и нажмите значок «КОПИЯ», чтобы открыть папку, и в адресе вы увидите идентификатор.

T.Todua 9 Авг 2017 в 12:31

Существует неофициальный Plus Messenger клиент для пользователей Android, и вы можете увидеть идентификатор в информации о группе / канале.

Еще по теме:  Чит леонтап на стандофф Телеграм

Супергруппа и канал будут выглядеть как 1068773197 , то есть -1001068773197 для ботов (с префиксом -100 ).

Источник: question-it.com

Подключение Telegram (личный бот)

Полное описание всех команд и возможностей нашего авторского Telegram-бота, а также полный список команд, которые Telegram-бот будет принимать в письменном виде от пользователя, вы можете найти здесь:

Подробная инструкция:

Нажимаем ЗАПУСТИТЬ. После появится приветственное сообщение с возможностями.

Необходимо создать нового. Для этого нажимаем на ссылку “/newbot”

Теперь вводим имя для своего бота, для примера введем «Moontrader». После нажимаем Enter. Далее появится сообщение о том, что надо ввести «пользовательское имя» которое будет оканчиваться на “_bot”. Напишем для примера “mt01_alert_bot”, потом в поиске можно найти своего бота по данному пользовательскому имени.

Обязательно запишите Token, он выделен на скриншоте.

Пример: 1926660510:AAGw8XPYC2YVX7SaFWwN88BFhBv-tpyDr2A

! — Token это API ключ к Вашему боту, не показывайте его никому.

Далее в Telegram из главного окна, открываем снова поиск и пишем

Выбираем его для открытия чата.

Далее внизу ЗАПУСТИТЬ. На данном этапе, окно чата можно закрыть.

Теперь необходимо создать канал, в который мы добавим нашего бота. Для этого в Telegram сверху нажимаем «три полоски» меню, потом «Создать канал».

Вводим название, для примера напишем “MoonTrader — Alert”, далее СОЗДАТЬ.

По желанию выбираем тип канала, для примера выберем Частный канал. Нажимаем СОХРАНИТЬ.

Далее нам предлагают добавить участников, мы можем сразу указать нашего бота.

При добавлении предложит назначить Администратором, соглашаемся.

Даем права на “Добавление администраторов”. После нажимаем СОХРАНИТЬ.

Теперь необходимо добавить второго бота для идентификации ID канала.

В окне созданного канала заходим в меню “три точки” и выбираем Управление каналом.

Переходим в раздел “Администраторы” и нажимаем ДОБАВИТЬ АДМИНИСТРАТОРА.

Также включаем возможность “Добавления администраторов” и нажимаем СОХРАНИТЬ.

После добавления всех участников закрываем окно и сохраняем.

В ответ на сообщение бот пришлет ID канала. В данном примере -1001552213809. Сохраняем его. Знак минус в начале обязателен!

Теперь мы можем полученные данные указать в клиенте MoonTrader, для этого заходим в меню и выбираем раздел Core profile —> Telegram integration.

В открывшемся разделе нам необходимо поставить 2 галочки на пункты Telegram enabled и Use custom bot.

Далее необходимо заполнить поля:

  1. Telegram bot token — это Token который нам выдал «BotFather» при создании нового бота, в нашем случае это 1926660510:AAGw8XPYC2YVX7SaFWwN88BFhBv-tpyDr2A
  2. Telegram chat id — это ID нашего канала, которое мы узнали через «IDBot», в нашем случае это -1001552213809

И выбрать тип присылаемых уведомлений:

  1. Send order filled — оповещение об открытии ордера (начало сделки).
  2. Send notifications — оповещение о результате сделки (окончание сделки).
  3. Send performance alerts — оповещения о превышении лимитов нагрузки на сервере.
Еще по теме:  Почему Телеграмм блокирует номер телефона при регистрации

После всех настроек, для сохранения нажимаем ОК. Обязательно после сохранения настроек в клиенте — перезагрузите ядро и клиент!

Если Вы все сделали правильно, то Ваш личный бот будет автоматически посылать оповещения в Ваш созданный канал. Для проверки можете попробовать открыть и закрыть сделку на любом графике.

Инструкция для подключения встроенного бота Т1000 — перейти

Источник: docs.moontrader.com

Сбор информации о подписчиках Telegram-канала

На 2021 год боты в Telegram так и не имеют метода, позволяющего получать информацию о подписчиках канала. Тем не менее, существует достаточно сложное в освоении Telegram API и построенная на нём библиотека Telethon. Сегодня мы посмотрим, как при помощи библиотеки выгрузить информацию о подписчиках своего канала.

Создание приложения

Для начала необходимо создать приложение, через которое будут отправляться запросы к API. Перейдите на https://my.telegram.org и авторизуйтесь в Telegram-аккаунте:

После успешной авторизации перейдите на страницу API development tools:

Заполните все поля и жмите на создание приложения:

Из полученной конфигурации нам необходим app api_id и app api_hash:

Запрос к API

Импортируем telethon — он поможет сформировать запрос, и pandas — полученный ответ мы запишем в DataFrame.

from telethon import TelegramClient import pandas as pd

Вводим api_id, api_hash, наш номер телефона и ссылку на канал, информацию о подписчиках которого хотим получить. Доступ к информации о подписчиках есть только у администраторов канала.

api_id = 1234567 api_hash = ‘1b42hj25kd8jw42b234kwj242c’ phone = ‘+71234567890’ channel_href = ‘https://t.me/leftjoin’

Создаём новую сессию — вместо session_name можно подставить любое другое название. Методы в библиотеке работают асинхронно, поэтому ответа от них требуется ожидать:

client = TelegramClient(‘session_name’, api_id, api_hash) client = await client.start() dialogs = await client.get_dialogs()

Собираем все каналы текущего пользователя. Из ссылки забираем часть с именем канала и вытаскиваем из словаря нужный:

channels = my_channel = channel_href.split(‘/’)[-1] channel = channels[my_channel]

Подписчиков, доступ к которым не ограничен приватностью, можно получить методом get_participants. С 20 июля 2018 года Telegram установил ограничение в 200 подписчиков для вызова метода, и установка параметра aggressive на True поможет получить всех подписчиков за раз.

members_telethon_list = await client.get_participants(channel, aggressive=True)

Из полученных библиотечных структур извлекаем информацию о пользователях — их имена и телефоны:

username_list = [member.username for member in members_telethon_list] first_name_list = [member.first_name for member in members_telethon_list] last_name_list = [member.last_name for member in members_telethon_list] phone_list = [member.phone for member in members_telethon_list]

Из четырёх списков собираем DataFrame и пишем его в csv-таблицу:

df = pd.DataFrame() df[‘username’] = username_list df[‘first_name’] = first_name_list df[‘last_name’] = last_name_list df[‘phone’] = phone_list df.to_csv(‘subscribers.csv’, index=False)

Результат работы — такая таблица:

Для запуска в Jupyter Notebook описанный ниже код можно просто вставить в ячейку, но при запуске из Python-файла будет такая ошибка:

Еще по теме:  Если человека удялют из контактов в Телеграмме он удаляется в архиве

SyntaxError: ‘await’ outside function

Устранить проблему можно, записав весь код в асинхронную функцию. Целиком выглядеть код будет так:

from telethon import TelegramClient import pandas as pd import asyncio async def main(): api_id = 1234567 api_hash = ‘1b42hj25kd8jw42b234kwj242c’ phone = ‘+71234567890’ channel_href = ‘https://t.me/leftjoin’ client = TelegramClient(‘session_name’, api_id, api_hash) client = await client.start() dialogs = await client.get_dialogs() channels = my_channel = channel_href.split(‘/’)[-1] channel = channels[my_channel] members_telethon_list = await client.get_participants(channel, aggressive=True) username_list = [member.username for member in members_telethon_list] first_name_list = [member.first_name for member in members_telethon_list] last_name_list = [member.last_name for member in members_telethon_list] phone_list = [member.phone for member in members_telethon_list] df = pd.DataFrame() df[‘username’] = username_list df[‘first_name’] = first_name_list df[‘last_name’] = last_name_list df[‘phone’] = phone_list df.to_csv(‘subscribers.csv’, index=False) if __name__ == ‘__main__’: loop = asyncio.get_event_loop() loop.run_until_complete(main())
Поделиться
Поделиться
27 комментариев

Что-то не работает. Ругается: SyntaxError: ’await’ outside function

Николай Валиотти 2021

Добрый день! Проверили способ прямо сейчас — у нас всё работает. Пришлите, пожалуйста, свой код (можно через gist.github.com) и версию Python.

Да я вообще не очень разбираюсь в Python’е. Только начал учить буквально на днях. Парсер чатов-то сделал, но там попроще было (на другом сайте), а сейчас понадобился для дела свой канал собрать, а там такие камни подводные 🙂

Николай Валиотти 2021

В Python вовсе необязательно разделять отдельные участки кода на функции, как, например, в C 🙂 Попробуйте написать без них, просто записывая последовательно все команды из материала в файл — должно получиться вот так: https://gist.github.com/Elisejj/aec7867e5da55e295d148882ae41488c

Если так делать, то он снова на await ругается: SyntaxError: ’await’ outside function

Я ж с такой «атаки в лоб» и начинал 🙂 В общем, вот такое решение у меня работает (всё парсит и файл сохраняет): https://gist.github.com/Mnsrff/9cba7a3231034fac900dd00b692d7c0f

Но хотелось бы разобраться, почему так 🙂 Почему у вас без функций всё работает, а я вынужден был всё в них заворачивать и вызывать 🙂 Python 3.7 у меня. Библиотеки установлены.

Marsel Kh 2021

Добрый день. Спасибо за код.
А с чем может быть связано несовпадение количества участников группы и количество выгруженных? Подписчики могут где-то ограничить приватность и не светиться в группах?
А то у меня из 574 юзеров выгружается только 470, хотя последний элемент в members_telethon_list total равняется 574.

Николай Валиотти 2021

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

Максим Игоревич 2021

Добрый день.
Подскажите пожалуйста, как вытащить ID юзеров.

Максим Игоревич 2021

Михаил Артемьев 2021

Подскажите, есть ли способ получить список подписчиков канала, которые были удалены?

Николай Валиотти 2021

насколько мне известно, нет, увы, их уже не получить

Ольга Телюкова 2021

Рейтинг
( Пока оценок нет )
Загрузка ...