Telegram API开发工具获取api_id/api_hash持续报错求助
无法获取Telegram API的api_hash和api_id问题
我需要api_hash和api_id来搭建基于Telegram API的Userbot(用于Telethon、Pyrogram等库),这类API和BotFather提供的不同,必须从Telegram的API开发工具板块获取。
我身处伊朗,三周内尝试了30余个不同国家的IP:包括土耳其、美国VPS,以及NordVPN、Hotspot Shield、v2ray等付费VPN切换IP;所用手机号覆盖阿根廷、爱沙尼亚、美国、伊朗。已关闭浏览器广告拦截,在Edge、Chrome、Firefox的常规及隐身模式下测试,提交以下请求数据后仅收到ERROR响应:
App Title: testappnumber12
Short name: testapp12
URL: www.telegram.org
Platform: Android / Desktop
Description: anything / skip
响应内容:
ERROR
为进一步验证,我用英国Linux VPS的纯净IP编写Python代码发起程序化请求,仍返回ERROR,怀疑问题出在Telegram端,希望能协助解决获取api_hash和api_id的问题。附请求代码:
import requests from bs4 import BeautifulSoup def main(): send_password_url = 'https://my.telegram.org/auth/send_password' payload = { 'phone': PHONE } response = session.post(url=send_password_url, data=payload) if response.status_code == 200: if response.text != "Sorry, too many tries. Please try again later." : random_hash = response.json()['random_hash'] else: print(response.text) return else: print(f"Unsuccessful request. Status Code: {response.status_code}") return confirmation_code = input('Enter your confirmation code: ') login_url = 'https://my.telegram.org/auth/login' payload = { 'phone': PHONE, 'random_hash': random_hash, 'password': confirmation_code } response = session.post(url=login_url, data=payload) if response.status_code == 200: if response.text != "Sorry, too many tries. Please try again later." : if response.text != "true": return else: print(response.text) return else: print(f"Unsuccessful request. Status Code: {response.status_code}") return apps_page = session.get('https://my.telegram.org/apps') soup = BeautifulSoup(apps_page.text, 'html.parser') page_hash = soup.find('input', attrs={'name': 'hash'}).get('value') print("hash:", page_hash) create_url = "https://my.telegram.org/apps/create" payload = { 'hash': page_hash, 'app_title': 'testapp12345', 'app_shortname': 'testapp', 'app_url': 'localhost', 'app_platform': 'desktop', 'app_desc': '' } response = session.post(url=create_url, data=payload) print("Telegram Response:", response.text) if __name__ == '__main__': PHONE = int(input('Enter your phone number: (ex. 18880001234) ')) session = requests.Session() main() input("Press Enter to exit...")
可能的解决方向
- 检查账号状态:确认你的Telegram账号没有被限制API权限,部分地区的账号可能因合规原因被限制创建第三方应用。可以尝试用注册时间超6个月、有正常聊天记录的老账号测试。
- 调整请求参数:
- 不要用
localhost或www.telegram.org作为App URL,换成真实存在的个人域名(哪怕是静态页面)。 - App Shortname避免用
testapp这类通用名称,试试带随机字符串的独特名称,比如testapp_xyz789。 - 平台选择固定单一类型,不要同时测试Android和Desktop,比如只选Desktop。
- 不要用
- 绕过自动化检测:Telegram可能对程序化请求有拦截,尝试完全用浏览器手动操作,操作过程中加入自然停顿——比如登录后等1分钟再进入创建页面,填写表单时每间隔几秒再填下一项。
- 联系官方支持:如果以上方法都无效,通过Telegram官方支持渠道提交工单,说明你的情况(所在地区、尝试过的方法),请求解除限制。
内容的提问来源于stack exchange,提问作者Hero
相关产品推荐
相关产品推荐

