电报协议号sessionjson怎么登录怎么用

如果您购买了一个 Telegram 帐号,并且卖家提供了一个手机号+ session+json 文件,没有 tdata 目录文件,通常这种 session+json 文件会包含登录所需的会话数据,比 tdata 登录稍加复杂,懂技术可能更容易操作

TG稳

如果您不慎购买了这种 Telegram 的协议号,没有tdata 目录,那该怎么登录?可按下面步骤进行登录。

目录名称:电报登录手机号

.json 结尾的文件:包含账号的相关信息

.session 结尾的文件:Telegram 客户端的会话文件

小火箭

下面是Telegram 协议号怎么登录?session+json怎么用?的具体操作步骤

有了 .session 文件,登录就相对容易了。这里会用到 python Telethon 库, 可以直接使用 .session 文件来登录,通常需要先安装电脑上安装 python 环境。

1、电脑上安装 python3

win/mac/linux 系统 都可以安装 python3 最新版本,python3 下载安装地址:点击前往

win 系统,安装 python3时勾选 Add Python x to PATH (自动添加环境变量),如下图所示,如果不勾选,会找不到 python3 ,就要手动配置环境变量,比较麻烦,可自行谷歌,这里就不追溯了。

小火箭

2、安装所需的 Telethon库:

执行下面命令安装 telethon

pip3 install telethon

win11 为例,搜索 cmd,双击打开

小火箭

输入 pip3 install telethon 回车,我这里已经安装过了

小火箭

3、新增 telegram_login.py 的文件(.py结尾)

文件放到跟 json 和 session 结尾的文件同级的目录中。注意:下方脚本不需要做任何修改就可以用,但一定要安装 telethon

import re import asyncio import os import json import glob from telethon import TelegramClient, events from telethon.network import connection   # 获取当前目录下的所有JSON文件列表 json_files = glob.glob("*.json")  if len(json_files) == 0:     raise FileNotFoundError("当前目录下未找到任何 .json 文件。") elif len(json_files) > 1:     raise ValueError("当前目录下存在多个 .json 文件,无法自动选择。请保留唯一的 .json 文件或手动指定。")  json_filename = json_files[0]  with open(json_filename, "r", encoding="utf-8") as f:     data = json.load(f)   api_id = data["app_id"] api_hash = data["app_hash"] session_name = os.path.splitext(json_filename)[0]  # 如果需要代理(例如在无法直接访问Telegram的地区),请在此处配置您的代理 # proxy = (connection.ConnectionTcpFull, '127.0.0.1', 1080) # client = TelegramClient(session_name, api_id, api_hash, proxy=proxy)  client = TelegramClient(session_name, api_id, api_hash)  @client.on(events.NewMessage(from_users=777000)) # 777000为Telegram官方通知bot的ID async def handler(event):     # 来自官方777000的新消息事件监听     print("Received a message event from 777000")     message_text = event.message.text     print("Message text:", message_text)      # 尝试从消息文本中提取5或6位数字的验证码     match = re.search(r"b(d{5,6})b", message_text)     if match:         code = match.group(1)         print("Verification code is:", code)  async def check_past_messages():     # 主动获取 777000 最近10条消息,看是否有遗漏的验证码消息     messages = await client.get_messages(777000, limit=10)     for msg in messages:         #print("Past message:", msg.text)         # 尝试匹配验证码         match = re.search(r"b(d{5,6})b", msg.text)         if match:             code = match.group(1)  async def main():     me = await client.get_me()     print("Logged in as:", me.first_name, me.last_name, me.username)  with client:     client.loop.run_until_complete(main())     # 保持客户端在线,等待和监听来自777000的消息事件     client.run_until_disconnected()

import re import asyncio import os import json import glob from telethon import TelegramClient, events from telethon.network import connection   # 获取当前目录下的所有JSON文件列表 json_files = glob.glob("*.json")  if len(json_files) == 0:     raise FileNotFoundError("当前目录下未找到任何 .json 文件。") elif len(json_files) > 1:     raise ValueError("当前目录下存在多个 .json 文件,无法自动选择。请保留唯一的 .json 文件或手动指定。")  json_filename = json_files[0]  with open(json_filename, "r", encoding="utf-8") as f:     data = json.load(f)   api_id = data["app_id"] api_hash = data["app_hash"] session_name = os.path.splitext(json_filename)[0]  # 如果需要代理(例如在无法直接访问Telegram的地区),请在此处配置您的代理 # proxy = (connection.ConnectionTcpFull, '127.0.0.1', 1080) # client = TelegramClient(session_name, api_id, api_hash, proxy=proxy)  client = TelegramClient(session_name, api_id, api_hash)  @client.on(events.NewMessage(from_users=777000)) # 777000为Telegram官方通知bot的ID async def handler(event):     # 来自官方777000的新消息事件监听     print("Received a message event from 777000")     message_text = event.message.text     print("Message text:", message_text)      # 尝试从消息文本中提取5或6位数字的验证码     match = re.search(r"b(d{5,6})b", message_text)     if match:         code = match.group(1)         print("Verification code is:", code)  async def check_past_messages():     # 主动获取 777000 最近10条消息,看是否有遗漏的验证码消息     messages = await client.get_messages(777000, limit=10)     for msg in messages:         #print("Past message:", msg.text)         # 尝试匹配验证码         match = re.search(r"b(d{5,6})b", msg.text)         if match:             code = match.group(1)  async def main():     me = await client.get_me()     print("Logged in as:", me.first_name, me.last_name, me.username)  with client:     client.loop.run_until_complete(main())     # 保持客户端在线,等待和监听来自777000的消息事件     client.run_until_disconnected()

import re

import asyncio

import os

import json

import glob

from telethon import TelegramClient, events

from telethon.network import connection

# 获取当前目录下的所有JSON文件列表

json_files = glob. glob ( "*.json" )

if len ( json_files ) == 0 :

raise FileNotFoundError ( "当前目录下未找到任何 .json 文件。" )

elif len ( json_files ) > 1 :

raise ValueError ( "当前目录下存在多个 .json 文件,无法自动选择。请保留唯一的 .json 文件或手动指定。" )

json_filename = json_files [ 0 ]

with open ( json_filename, "r" , encoding= "utf-8" ) as f:

data = json. load ( f )

api_id = data [ "app_id" ]

api_hash = data [ "app_hash" ]

session_name = os.path. splitext ( json_filename )[ 0 ]

# 如果需要代理(例如在无法直接访问Telegram的地区),请在此处配置您的代理

# proxy = (connection.ConnectionTcpFull, '127.0.0.1', 1080)

# client = TelegramClient(session_name, api_id, api_hash, proxy=proxy)

client = TelegramClient ( session_name, api_id, api_hash )

@client. on ( events. NewMessage ( from_users= 777000 )) # 777000为Telegram官方通知bot的ID

async def handler ( event ) :

# 来自官方777000的新消息事件监听

print ( "Received a message event from 777000" )

message_text = event.message.text

print ( "Message text:" , message_text )

# 尝试从消息文本中提取5或6位数字的验证码

match = re. search ( r "b(d{5,6})b" , message_text )

if match:

code = match. group ( 1 )

print ( "Verification code is:" , code )

async def check_past_messages () :

# 主动获取 777000 最近10条消息,看是否有遗漏的验证码消息

messages = await client. get_messages ( 777000 , limit= 10 )

for msg in messages:

#print("Past message:", msg.text)

# 尝试匹配验证码

match = re. search ( r "b(d{5,6})b" , msg.text )

if match:

code = match. group ( 1 )

async def main () :

me = await client. get_me ()

print ( "Logged in as:" , me.first_name, me.last_name, me.username )

with client:

client.loop. run_until_complete ( main ())

# 保持客户端在线,等待和监听来自777000的消息事件

client. run_until_disconnected ()

4、win双击 telegram_login.py 脚本

注意:mac/linux 执行 python3 telegram_login.py

小火箭

打开之后,正常情况下会显示登录后的姓名,如果出现 Attempt 1 at connecting failed: TimeoutError 错误信息,此时 clash 代理软件就要打开 TUN 模式或高级模式,重新执行脚本即可,或者在终端执行下面命令

export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890

注意:有可能你的代理软件端口不是 7890,请替换为你的。

5、登录 telegram

选择底部的 Or log in using you phone number ->输入手机号登录 -下一步

小火箭

6、查看验证码

如下图所示:python3 脚本成功获取到了验证码。(亲测手机端和电脑客户端登录都能获取到验证码)

小火箭

⚠️注意:

经过大量使用测试,有时候电脑端和手机端登录,提示验证码已经发送到已登录设备,但python 脚本始终无法收到验证,在安卓手机telegram X 上登录,却收到了验证码,登录成功后,查看 telegram 官方发来的验证码,发现前面电脑端和手机端登录,压根就没发送验证码,这不是 python 脚本的问题,可能是某些原因,没有成功触发发送验证码操作。

7、电报登录成功

小火箭

8、登录成功后一定要开启两步验证密码,并绑定恢复邮箱(安全设置)

为了telegram帐号安全,强烈建议开启两步验证密码

为了您的帐号安全,请及时设置两步验证密码,该密码只会在新登录Telegram 时被要求输入,不会带来任何麻烦,否则您的帐户可能有风险被盗用。

9、在设置-设备中,终止掉不是你的会话(安全设置)

如果遇到报错,For security reasons, you can’t terminate older sessions from a device that you’ve just connected. Please use an earlier connection or wait for a few hours.

这是 Telegram 内部的安全策略。您收到的提示信息表示,因为您当前尝试终止其他会话的这个设备(或这次连接)是刚刚登录不久的,所以出于安全考虑,Telegram 不允许您立即从这个新会话终止较早的会话。

解决办法: 等待一段时间 :通常是几小时后。当您的本次连接(设备)不再被视为“刚刚连接”,Telegram 就会允许您终止其他会话。

版权声明:
作者:小火箭shadowrocket
链接:https://www.shadowrocket888.org/856.html
来源:小火箭官网
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>