Telegram ボットはfileid
、ファイルのダウンロードに使用します。fileid
これを Telegram client (My Unofficial version) から取得するにはどうすればよいですか? のファイルにmtproto
は、アドレスを示すこのロケーション クラスがあります。
ファイルの場所のパラメータ
- dc_id int ファイルを保持しているデータセンターの番号
- volume_id long サーバーのボリューム
- local_id int ファイル ID
- ファイルにアクセスするための秘密の長いチェックサム
問題は、クラスfileid
からボットに適した を生成する方法がわからないことです。File Location
更新 1:
私はいくつかのリバースエンジニアリングを試みました。File Location
それで、クラスとの間に何らかの関係があることがわかりましたFileId
。
私のFile Location
サンプルアドレスです。
- id:
0
// このフィールドはシークレット チャットでのみ使用できます - access_hash:
0
// このフィールドはシークレット チャットでのみ使用できます - volume_id:
429640340
(199BCA94 HEX
) - secret:
-3528741004939935589
(CF0764C08833409B HEX
) // TG ドキュメントによると、ファイル CheckSum である必要があります - local_id:
6005
(1775 HEX
)
これは、ボットから取得しFileID
た以前のクラスによると、次のとおりです。FileLocation
- ファイル ID:
AgADBAADL6gxG06L8w0nhNO87UW3iZTKmxkABJtAM4jAZAfPdRcAAgI
FileID
値がBase64
フォーマットであることは明らかです。だから私はそれをデコードしました:
- 16 進値:
0200030400032FA8311B4E8BF30D2784D3BCED45B78994CA9B1900049B403388C06407CF7517000202
FileLocation
これで、この 16 進値で値を確認できます。
- わからない:
0200030400032FA8311B4E8BF30D2784D3BCED45B789
- ボリューム ID:
94CA9B19 HEX
- わからない:
0004
- ひみつ:
9B403388C06407CF HEX
- local_id:
7517 Hex
- わからない:
000202
注: 値はBig-Endian
形式で保存されます。
次に、値をデコードする必要がありUnknown
ます。これらの値を解読するのに役立つ努力に感謝します。