我试图通过用户名将用户添加到我的 channel 。我正在使用 python 3.6 Telethon 库和 pythonanywhere 服务器:
api_hash = 'b7**'
phone = '+7***'
client = TelegramClient('new_ses', api_id, api_hash)
client.connect()
client = TelegramClient('session_neworig', api_id, api_hash,)
client.connect()
from telethon.tl.functions.channels import InviteToChannelRequest
from telethon.tl.functions.contacts import ResolveUsernameRequest
from telethon.tl.types import InputPeerChannel ,InputPeerUser,InputUser
from telethon.tl.functions.channels import JoinChannelRequest
chann=client.get_entity('channelname') #its public channel
print(chann.id)
1161823752
print(chann.access_hash)
8062085565372622341
time.sleep(30)
chan=InputPeerChannel(chann.id, chann.access_hash)
user = client(ResolveUsernameRequest('Chai***'))
print(user.users[0].id)
193568760
print(user.users[0].access_hash)
-4514649540347033311
time.sleep(1*30)
user=InputUser(user.users[0].id,user.users[0].access_hash,)
client.invoke(InviteToChannelRequest(chan,[user]))
这项工作很好,我得到了
-telethon.errors.rpc_error_list.PeerFloodError: (PeerFloodError(...), 'Too many requests')
我究竟做错了什么?如何避免呢?
这一个代码对我有用,但是在添加后我就泛滥了,比如说 20 个用户:
from telethon.helpers import get_input_peer
client.invoke(InviteToChannelRequest(
get_input_peer(client.get_entity(chan),
[get_input_peer(client.get_entity(user))]
))
请帮忙,如何在没有任何禁止的情况下通过用户名添加 200 个用户,也许有另一种方法可以通过 python 来做到这一点?另一个库或 api ?
最佳答案
在 Telegram API 文档网站上找到了一些东西
每个电话号码每天只能进行一定数量的登录(例如 5 次,但这可能会发生变化),之后 API 将在第二天返回 FLOOD 错误。这可能不足以测试客户端应用程序中用户授权流的实现。
Link to source
关于python - 通过用户名邀请用户到 Telegram channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48051081/