首页 > 解决方案 > 将成员从一个电报超级组转移到另一个没有好的结果

问题描述

我必须从另一个已作为备份的Telegram 超级组(大约 6k)转移成员。我们已经尝试向他们发送链接,但大多数人不会打扰。

我在Telethon中尝试这样做,但除了一次运行 1 到 12 个用户之外,它停止做任何事情。我是两个组的管理员。

from telethon.sessions.string import StringSession
from telethon.tl.functions.channels import InviteToChannelRequest
import asyncio


api_id = xxxxx
api_hash = 'xxxxxxx'
string = 'xxxxxx'
client = TelegramClient(StringSession(string), api_id, api_hash)
loop = asyncio.get_event_loop()
origin = 'original_group'
destination = 'backup'
invited = []

async def transfer(): 
    users = client.iter_participants(origin, aggressive =True) 

    async for user in users:
        invited.append(user)
        await client(InviteToChannelRequest(
            destination,
            invited
        ))

with client:
    client.loop.run_until_complete(transfer())

当我运行代码时,终端只是永远运行,但组中没有任何变化。

你能指出我的错误吗?

谢谢。

标签: pythontelegramtelethon

解决方案


尝试这个:

async def transfer(): 
    users = client.iter_participants(origin, aggressive =True) 
    __users = list()
    async for user in users:
        __users.append(user.id)
    for user in __users:
        await client(InviteToChannelRequest(destination, [user]))

推荐阅读