如何通过Telethon或Pyrogram程序化获取Telegram API_ID与API_HASH
程序化获取Telegram API_ID/API_HASH的简便方案
复用会话文件中的API凭证
如果你已经用某套API_ID/API_HASH完成过账号注册,Telethon或Pyrogram生成的会话文件(比如Telethon的session.session、Pyrogram的my_account.session)里会保存对应的API信息。直接从会话里读取就行,不用再走获取流程。
示例代码(Telethon):from telethon.sessions import StringSession # 可以是会话字符串或者本地会话文件路径 session = StringSession("你的会话内容") print("API_ID:", session.api_id) print("API_HASH:", session.api_hash)只要是用同一套API注册的账号,会话里的API信息都是相同的,完全可以复用。
预生成批量API凭证
提前手动去Telegram开发者平台创建一批API应用,把生成的API_ID/API_HASH存到本地配置文件(比如JSON、CSV)里。程序注册账号时,直接从配置池里取可用的凭证,用完可以标记或者循环使用。这种方法只需要一次手动操作,就能解决长期的批量注册需求,比爬网页省事太多。调用官方未公开的API创建接口
Telegram有个未公开的接口可以程序化创建API应用,不用模拟网页登录。你可以利用注册账号时已经拿到的phone_code_hash和手机号,直接发请求生成API凭证。
示例请求(Python):import requests def get_api_creds(phone_code_hash, phone_number): url = "https://my.telegram.org/apps/create" payload = { "phone_number": phone_number, "phone_code_hash": phone_code_hash, "first_name": "AutoCreated", "app_title": "MyAutoApp", "app_shortname": f"auto_{phone_number[-4:]}", "app_platform": "android", "app_url": "", "app_desc": "" } resp = requests.post(url, data=payload) if resp.status_code == 200: data = resp.json() return data["api_id"], data["api_hash"] return None, None注:
phone_code_hash可以在Telethon/Pyrogram的注册流程中获取(调用send_code_request后会返回这个值),因为注册时已经完成了手机号验证,不需要再收验证码。
内容的提问来源于stack exchange,提问作者DanielTheGeek
相关产品推荐
相关产品推荐

