电报机器人使用fileid
下载文件。我怎样才能从电报客户端(我的非官方版本)得到这个fileid
? mtproto
中的文件有this location class,表示他们的地址。电报:从电报客户端获取fileid
文件位置参数
- dc_id数据中心的 INT编号拿着文件
- volume_id长期服务器卷
- local_id INT文件编号
- 秘密长期校验和访问文件
的问题是我不知道如何生成fileid
适合于从File Location
类机器人。
更新1:
我试着做一些逆向工程。所以,我发现File Location
班和FileId
之间有一些关系。
这是我的File Location
样本地址。
- ID:
0
//此字段仅可用于秘密聊天 - access_hash:
0
//此字段仅可用于秘密聊天 - volume_id:
429640340
(199BCA94 HEX
) - 秘密:
-3528741004939935589
(CF0764C08833409B HEX
)//根据TG文档,它应该是文件校验和 - local_id:
6005
(1775 HEX
)
这是我根据FileID
到我检索它从我的机器人前FileLocation
类:
- FILEID:
AgADBAADL6gxG06L8w0nhNO87UW3iZTKmxkABJtAM4jAZAfPdRcAAgI
很明显,FileID
值是Base64
格式。所以,我已经解码它:
- 十六进制值:
0200030400032FA8311B4E8BF30D2784D3BCED45B78994CA9B1900049B403388C06407CF7517000202
现在我们可以看到在这个十六进制值FileLocation
值:
- 未知:
0200030400032FA8311B4E8BF30D2784D3BCED45B789
- VolumeId:
94CA9B19 HEX
- 未知:
0004
- 揭秘:
9B403388C06407CF HEX
- local_id:
7517 Hex
- 未知:
000202
注:该值存储在Big-Endian
格式。
现在我们需要解码Unknown
值。我很感谢有助于解码这些值的任何努力。
似乎Telegram-API中的PhotoSize.location和Bot-API中的PhotoSize.file_id没有关系 –