Telegram 机器人用于fileid下载文件。我如何fileid从 Telegram 客户端(我的非官方版本)获得这个?中的文件mtproto具有指示其地址的位置类。
文件位置参数
- dc_id int 保存文件的数据中心编号
- volume_id long 服务器卷
- local_id int 文件 ID
- 访问文件的秘密长校验和
问题是我不知道如何从课堂上生成fileid适合机器人的。File Location
更新 1:
我试图做一些逆向工程。所以,我发现File Locationclass 和FileId.
这是我的File Location 示例地址。
- id:
0// 此字段仅适用于秘密聊天 - access_hash:
0// 此字段仅适用于秘密聊天 - volume_id:
429640340(199BCA94 HEX) - secret:
-3528741004939935589(CF0764C08833409B HEX) // 根据 TG 文档,它应该是文件 CheckSum - local_id:
6005(1775 HEX)
这是我根据我从我的 Bot 中检索FileID到的前一课:FileLocation
- 文件编号:
AgADBAADL6gxG06L8w0nhNO87UW3iZTKmxkABJtAM4jAZAfPdRcAAgI
很明显,FileID值是Base64格式。所以我已经解码了它:
- 十六进制值:
0200030400032FA8311B4E8BF30D2784D3BCED45B78994CA9B1900049B403388C06407CF7517000202
现在我们可以看到FileLocation这个十六进制值中的值:
- 未知:
0200030400032FA8311B4E8BF30D2784D3BCED45B789 - 卷号:
94CA9B19 HEX - 未知:
0004 - 秘密:
9B403388C06407CF HEX - local_id:
7517 Hex - 未知:
000202
注意:这些值以Big-Endian格式存储。
现在我们需要解码Unknown值。我感谢任何有助于解码这些值的努力。