Anybody give a starter on how may I get information about users from my telegram bot. Imagine my bot in an admin user in my channel and I want to get my channel user list or to be noticed when a new user joins. How can I do that. Telegram's documents are so unorganized. So far I have looked at these:
但这些都没有帮助。
答案 0 :(得分:10)
答案 1 :(得分:9)
Telegram Bot不保留用户的任何信息。您应该自己保存与机器人通信的所有用户。例如,将其ID存储在数据库中。
如果是频道 - 您可以从频道成员列表中获取此信息。
如果您需要得到通知 - 您的机器人应该将用户存储在某处并检查用户是否是新用户。
答案 2 :(得分:3)
要获取用户列表,您需要使用电报API。
电报API相当复杂。有些客户可以更快地完成工作。
对于python,有Telethon,获取频道用户的代码是:
leftButton.setText(String.valueof(rand1));
rightButton.setText(String.valueof(rand2));
答案 3 :(得分:3)
正如其他人已经提到的那样,您无法通过Bot API列出频道用户。
但是您可以使用MTProto API以普通用户身份登录,并以编程方式访问您在台式机或移动应用程序中看到的所有内容。
要使用MTProto,您需要使用现有的电报帐户以及https://my.telegram.org/:api_id
和api_hash
登录get credentials。
这是一个如何使用Telethon python库获取电报频道/组用户列表的有效示例。
from telethon import TelegramClient, sync
api_id = 'FILL REAL VALUES HERE'
api_hash = 'FILL REAL VALUES HERE'
client = TelegramClient('xxx', api_id, api_hash).start()
# get all the channels that I can access
channels = {d.entity.username: d.entity
for d in client.get_dialogs()
if d.is_channel}
# choose the one that I want list users from
channel = channels[channel_name]
# get all the users and print them
for u in client.get_participants(channel):
print(u.id, u.first_name, u.last_name, u.username)
使用client.get_entity()通过名称/电话/ URL搜索频道/用户很容易。
答案 4 :(得分:0)
Bot无法通过api访问频道用户列表。 人们有两种可能实现这一目标:
答案 5 :(得分:0)
Telegram bot没有任何api可以访问频道或群组用户。 如果访问组用户对您很重要,我建议您使用Telegram-CLI。您可以访问所有Telegran用户帐户的API,以便您可以访问所有组的用户数据。
答案 6 :(得分:0)
使用不依赖于语言的Telegram API的一种很好的方式是使用https://www.t-a-a-s.ru/。您无需安装任何内容-您可以通过任何语言的HTTP请求进行查询。
GET https://www.t-a-a-s.ru/client
{
"api_key": "YOUR_API_KEY",
"@type": "getSupergroupMembers",
"supergroup_id": "xxx",
"limit": "200"
}