在 Telegram 中获取用户列表
Get User List in Telegram
我想在 Python-Telegram-Bot 中获取具有此功能的频道成员列表:
context.bot.getChatMember("@*****",update.message.chat_id)
我这样做:
a=context.bot.getChatMember("@*****",update.message.chat_id)
但是当我想打印时,如果该用户不在该频道中,它不会 return 任何内容,但如果该用户在该频道中,它 returns 用户信息
如果该用户不在该频道,我想获取 (a) 的值。
我使用了 pdb 并且出现了 'telegram.error.BadRequest: User not found' 这个错误,但是当我想打印它时什么都不打印,当我在 pdb 中打印 (a) 时它说 *** NameError: name 'a' 未定义
我该怎么办?
以及如何获取频道成员列表
首先,getChatMember
方法用于检查用户是否正在聊天(group/channel)。所以使用此方法,您无法检索频道成员列表。
至于你收到错误的原因,理想情况下 ptb 如果在该聊天中找不到用户,则引发 BadRequest: User not found
(isn很明显!)。你必须使用异常块来处理这些。
假设您要检查用户是否在聊天
from telegram.error import BadRequest
def is_user_there(channel, chat_id) -> bool:
try:
chat_member = context.bot.getChatMember(channel,update.message.chat_id) # this will return a ChatMember object
if chat_member.status in [‘administrator’, ‘creator’, ‘member’]:
return True
else:
return False
except BadRequest:
return False
在此处阅读有关 ChatMember 对象的更多信息
我想在 Python-Telegram-Bot 中获取具有此功能的频道成员列表:
context.bot.getChatMember("@*****",update.message.chat_id)
我这样做:
a=context.bot.getChatMember("@*****",update.message.chat_id)
但是当我想打印时,如果该用户不在该频道中,它不会 return 任何内容,但如果该用户在该频道中,它 returns 用户信息
如果该用户不在该频道,我想获取 (a) 的值。
我使用了 pdb 并且出现了 'telegram.error.BadRequest: User not found' 这个错误,但是当我想打印它时什么都不打印,当我在 pdb 中打印 (a) 时它说 *** NameError: name 'a' 未定义
我该怎么办?
以及如何获取频道成员列表
首先,getChatMember
方法用于检查用户是否正在聊天(group/channel)。所以使用此方法,您无法检索频道成员列表。
至于你收到错误的原因,理想情况下 ptb 如果在该聊天中找不到用户,则引发 BadRequest: User not found
(isn很明显!)。你必须使用异常块来处理这些。
假设您要检查用户是否在聊天
from telegram.error import BadRequest
def is_user_there(channel, chat_id) -> bool:
try:
chat_member = context.bot.getChatMember(channel,update.message.chat_id) # this will return a ChatMember object
if chat_member.status in [‘administrator’, ‘creator’, ‘member’]:
return True
else:
return False
except BadRequest:
return False
在此处阅读有关 ChatMember 对象的更多信息