簡體   English   中英

如何將 tdata 轉換為電視節目 session?

[英]How to convert tdata to telethon session?

我需要將電報數據轉換為電視節目 session。 我怎樣才能做到這一點? 我試圖找到解決方案,花了三天時間,但我沒有找到任何東西

已經快兩年了,但現在創建了一個名為opentele的 Python 庫來執行此操作。

假設您已經具備 Python 知識,請按照以下步驟操作。

首先你需要從 PyPi 安裝 opentele:

pip 安裝opentele

准備:

  • 您需要有一個已授權的tdata文件夾(至少有一個登錄帳戶)。
  • Windows 上tdata文件夾的默認路徑位於%appdata%\Telegram Desktop\tdata
  • 創建一個 python (.py) 文件並導入以下內容:
     from opentele.td import TDesktop from opentele.tl import TelegramClient from opentele.api import API, UseCurrentSession, CreateNewSession import asyncio
  • 您還需要將主代碼放在異步 function 中:
     async def main(): # PUT EXAMPLE CODE HERE asyncio.run(main())

從 tdata 文件夾初始化TDesktop

  • tdata文件夾加載到TDesktop object 中:
     # Load TDesktop client from tdata folder tdataFolder = r"C:\Users\<username>\AppData\Roaming\Telegram Desktop\tdata" tdesk = TDesktop(tdataFolder) # Check if we have loaded any accounts assert tdesk.isLoaded()

TDesktop轉換為TelegramClient

有兩種方法可以做到這一點,要么使用當前的 session,要么創建(登錄)新的 session。

  • 使用當前的 session:
     # flag=UseCurrentSession # # Convert TDesktop to Telethon using the current session. client = await tdesk.ToTelethon(session="telethon.session", flag=UseCurrentSession)
  • 創建一個新的 session:
     # flag=CreateNewSession # # Convert TDesktop to Telethon by creating a new session. # CreateNewSession will use the current session (in tdata folder) to authorize a new session using QR Login. # If 2FA is enabled for this account, you must specify the password via the password argument. # This is of course slower than UseCurrentSession. client = await tdesk.ToTelethon(session="telethon.session", flag=CreateNewSession)

連接並打印所有登錄的會話。

# Connect and print all logged-in sessions of this client.
# Telethon will save the session to telethon.session on creation.
await client.connect()
await client.PrintSessions()

最終結果示例

from opentele.td import TDesktop
from opentele.tl import TelegramClient
from opentele.api import API, UseCurrentSession
import asyncio

async def main():

    # Load TDesktop client from tdata folder
    tdataFolder = r"C:\Users\<username>\AppData\Roaming\Telegram Desktop\tdata"
    tdesk = TDesktop(tdataFolder)
    
    # Check if we have loaded any accounts
    assert tdesk.isLoaded()

    # flag=UseCurrentSession
    #
    # Convert TDesktop to Telethon using the current session.
    client = await tdesk.ToTelethon(session="telethon.session", flag=UseCurrentSession)
    
    # Connect and print all logged-in sessions of this client.
    # Telethon will save the session to telethon.session on creation.
    await client.connect()
    await client.PrintSessions()

asyncio.run(main())

結果

  • session 將保存到telethon.session文件。
  • 您可以將此telethon.session與 telethon 一起使用,或直接與opentele一起使用 - 建議您這樣做,因為您不需要自己的API_IDAPI_HASH ,該庫默認使用官方 Telegram API。

評論

  • opentele是一個文檔齊全的庫,您可以在此處找到它的文檔。
  • 它還可以將 Telethon 會話轉換回 tdata,並且可以與 Telegram Desktop 一起使用。

警告

  • 根據其文檔,您必須繼續使用關聯的API ,您在連接到服務器時用於創建 session,否則您有丟失該帳戶的風險。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM