如何通过电报api获得频道成员的数量

时间:2017-08-27 08:44:26

标签: api telegram

我想获得频道成员的数量,但我不知道应该使用哪种方法?

我不是那个频道的管理员,我只想得到点票号。

编辑:我使用的是主电报api,而不是电报Bot api

3 个答案:

答案 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))