查询 电报 Telegram 账号已加群组频道 方便新号加入
前言
有群友说, 开了新的电报 Telegram 账号后, 不知道怎么把老号的群加回来
https://t.me/duangvpsfs/3769416
思路
先问问GPT 有没有可能性
telegram bot 或 telethon 可以 查询 某个 telegram 账号已加入的 group 和 channel 吗?
结论是 telethon 可以, 而且给出了一些代码
from telethon import TelegramClientclient = TelegramClient('session_name', api_id, api_hash)async def get_my_dialogs():await client.start()# 获取所有对话(包括群组、频道、私聊)async for dialog in client.iter_dialogs():if dialog.is_group:print(f"群组: {dialog.name}")elif dialog.is_channel:print(f"频道: {dialog.name}")with client:client.loop.run_until_complete(get_my_dialogs())
我自己有一定的编程能力, 当然我能看出来, 这样的代码只输出了群组和频道的名称. 更准确地应该还要输出群组和频道的 username
但, 假设我就是一个不会编程的小白, 那么我会先试试这个代码是什么效果.
调试
找了个VPS (用你自己的电脑也是可以的, 只要安装 python 并且解决翻墙的问题)
把代码保存为 .py 文件上传 比如, 文件名 tg-get-group-channel.py
然后在VPS上运行一下, 有报错
要安装 telethon 模块
要申请 api
要修改代码
安装 telethon 时报错from telethon import TelegramClient# 填入你从 my.telegram.org 获取的信息api_id = 12345 # 你的 api_idapi_hash = 'your_api_hash_here' # 你的 api_hashclient = TelegramClient('session_name', api_id, api_hash)async def get_my_dialogs():await client.start()async for dialog in client.iter_dialogs():if dialog.is_group:print(f"群组: {dialog.name}")elif dialog.is_channel:print(f"频道: {dialog.name}")with client:client.loop.run_until_complete(get_my_dialogs())
我按照提示先装 python3-pip 就行了, 就可以安装 telethon 了
有新的报错
有新的报错
pip install telethon --break-system-packages
接下来去申请API
需要输入 电话号码, 输入 telegram 验证码, 输入 密码(如果你设置了的话)
结果是这样的
所以向GPT提需求
输出 的结果 是这样的群组: test公开群频道: 翻墙新手求助现场群组: Joey Huang Blog群组: ja-netfilter群组: 折腾啥群组: Trojan-Go使用与反馈我需要增加输出 群组和频道的 username
结果更新代码
from telethon import TelegramClientapi_id = 12345api_hash = 'your_api_hash_here'client = TelegramClient('session_name', api_id, api_hash)async def get_my_dialogs():await client.start()async for dialog in client.iter_dialogs():entity = dialog.entityusername = f"@{entity.username}" if getattr(entity, 'username', None) else "私有"type_name = "群组" if dialog.is_group else "频道" if dialog.is_channel else "其他"if dialog.is_group or dialog.is_channel:print(f"{type_name}: {dialog.name} | {username}")with client:client.loop.run_until_complete(get_my_dialogs())
运行结果
已经是可用的状态了.
如果觉得从终端界面复制文字还嫌麻烦的话, 再让GPT 加个功能输出到文件.
========
Github
========
后记
本次(2026-1-24) 使用的GPT是
Claude 有分享整个对话过程的功能
https://claude.ai/share/5ab8d166-974f-44bc-af97-3d21be266fc8

评论
发表评论