Как получить список пользователей каналов Telegram с API Telegram Bot
Любой, кто дает стартер, как я могу получить информацию о пользователях из моего телеграммы bot.Imagine мой бот в пользователе администратора на моем канале, и я хочу получить список моих каналов или быть замеченным, когда новый пользователь присоединяется. Как мне это сделать.
Документы телеграммы настолько неорганизованны.
до сих пор я смотрел на них:
https://core.telegram.org/bots
https://core.telegram.org/bots/api
https://core.telegram.org/bots/samples
https://core.telegram.org/bots/faq
Но ничто из этого действительно не помогает.
Ответы
Ответ 1
Чтобы получить список пользователей, вам необходимо использовать API телеграмм.
API Telegram довольно сложный. Есть несколько клиентов, которые могут выполнять работу намного быстрее.
Для python существует Telethon, а способ получения пользователей канала:
get_full_channel
.
Ответ 2
Telegram Bot не хранит ничего о ваших пользователях. Вы должны сохранить самостоятельно всех пользователей, которые общаются с вашим ботом. Например, сохраните их идентификаторы в базе данных.
В случае канала - вы можете получить эту информацию из списка участников канала.
Если вам нужно получить уведомление - ваш бот должен где-то хранить пользователей и проверять, является ли пользователь новым.
Ответ 3
Чтобы получить список пользователей, вам необходимо использовать API телеграмм.
API Telegram довольно сложный. Есть несколько клиентов, которые могут выполнить работу намного быстрее.
Для python существует Telethon, а код для получения пользователей канала:
from telethon import TelegramClient
from telethon.tl.functions.contacts import ResolveUsernameRequest
from telethon.tl.functions.channels import GetAdminLogRequest
from telethon.tl.types import InputChannel
from telethon.tl.types import ChannelAdminLogEventsFilter
from telethon.tl.types import InputUserSelf
from telethon.tl.types import InputUser
# These example values won't work. You must get your own api_id and
# api_hash from https://my.telegram.org, under API Development.
api_id = ****** # Your api_id
api_hash = '********************************' # Your api_hash
phone_number = '+989122594574' # Your phone number
client = TelegramClient(phone_number, api_id, api_hash)
client.session.report_errors = False
client.connect()
if not client.is_user_authorized():
client.send_code_request(phone_number)
client.sign_in(phone_number, input('Enter the code: '))
channel = client(ResolveUsernameRequest('tabe_eshgh')) # Your channel username
user = client(ResolveUsernameRequest('amir2b')) # Your channel admin username
admins = [InputUserSelf(), InputUser(user.users[0].id, user.users[0].access_hash)] # admins
admins = [] # No need admins for join and leave and invite filters
filter = None # All events
# param: (join, leave, invite, ban, unban, kick, unkick, promote, demote, info, settings, pinned, edit, delete)
filter = ChannelAdminLogEventsFilter(True, True, True, False, False, False, False, False, False, False, False, False, False, False)
result = client(GetAdminLogRequest(InputChannel(channel.chats[0].id, channel.chats[0].access_hash), '', 0, 0, 10, filter, admins))
##print(result)
for _user in result.users:
##print(_user.id)
with open(''.join(['users/', str(_user.id)]), 'w') as f:
f.write(str(_user.id))
Ответ 4
Бот не может получить доступ к списку пользователей каналов через api.
Для этого есть две возможности:
Ответ 5
Нет никакого api для бота Telegram для доступа к пользователям каналов или групп.
Если доступ к пользователям группы важен для вас, я предлагаю вам использовать Telegram-CLI. Вы можете получить доступ ко всем пользовательским API учетной записи Telegran, чтобы у вас был доступ ко всем данным ваших пользователей группы.
https://github.com/vysheng/tg