我想获得频道成员的数量,但我不知道应该使用哪种方法?
我不是那个频道的管理员,我只想得到点票号。
编辑:我使用的是主电报api,而不是电报Bot api答案 0 :(得分:3)
您可以使用getChatMembersCount方法。
使用此方法获取聊天中的成员数。
答案 1 :(得分:1)
也可以通过 GetFullChannelRequest 在 Telethon 中做到这一点
async def main():
async with client_to_manage as client:
full_info = await client(GetFullChannelRequest(channel="moscowproc"))
print(f"count: {full_info.full_chat.participants_count}")
if __name__ == '__main__':
client_to_manage.loop.run_until_complete(main())
或者在没有 async/await 的情况下编写它
def main():
with client_to_manage as client:
full_info = client.loop.run_until_complete(client(GetFullChannelRequest(channel="moscowproc")))
print(f"count: {full_info.full_chat.participants_count}")
if __name__ == '__main__':
main()
也如上所说,通过bot-api与
也是可行的
getChatMembersCount 方法。您可以 curl 或使用 python 查询所需的 url
使用 python 代码可以看起来像这样:
import json
from urllib.request import urlopen
url ="https://api.telegram.org/bot<your-bot-api-token>/getChatMembersCount?chat_id=@<channel-name>"
with urlopen(url) as f:
resp = json.load(f)
print(resp['result'])
其中 <your-bot-api-token>
是 BotFather 提供的令牌,而 <channel-name>
是频道名称您想知道多少订阅者(当然,没有“<>”的所有内容)
首先检查,简单地卷曲它:
curl https://api.telegram.org/bot<your-bot-api-token>/getChatMembersCount?chat_id=@<channel-name>
答案 2 :(得分:0)
对我有用:)
from telethon import TelegramClient, sync
from telethon.tl.functions.channels import GetFullChannelRequest
api_id = API ID
api_hash = 'API HASH'
client = TelegramClient('session_name', api_id, api_hash)
client.start()
if (client.is_user_authorized() == False):
phone_number = 'PHONE NUMBER'
client.send_code_request(phone_number)
myself = client.sign_in(phone_number, input('Enter code: '))
channel = client.get_entity('CHANNEL LINK')
members = client.get_participants(channel)
print(len(members))