我首先要说的是,电报机器人API的问题不是不是。我正在尝试使用电报核心API从通道中获取图像。该图像位于消息对象的媒体属性中
"_": "message",
"pFlags": {
"post": true
},
"flags": 17920,
"post": true,
"id": 11210,
"to_id": {
"_": "peerChannel",
"channel_id": 1171605754
},
"date": 1550556770,
"message": "",
"media": {
"_": "messageMediaPhoto",
"pFlags": {},
"flags": 1,
"photo": {
"_": "photo",
"pFlags": {},
"flags": 0,
"id": "6294134956242348146",
"access_hash": "11226369941418527484",
"date": 1550556770,
我正在使用upload.getFile API来获取文件。例子是
upload.getFile({
location: {
_: 'inputFileLocation',
id: '6294134956242348146',
access_hash: '11226369941418527484'
},
limit: 1000,
offset: 0
})
但是问题是它引发了错误 RpcError:CODE#400 LIMIT_INVALID 。从https://core.telegram.org/api/files看,限值似乎无效。我尝试给出限制
但是它总是返回相同的错误。
答案 0 :(得分:0)
对于同样对文档感到沮丧的任何人。使用,阅读和尝试不同的东西最终将为您服务。如果可能的话,有人可以承担记录出色的开源软件的任务。
回答,定位对象不应像其他API一样包含id或访问哈希,而应具有电报模式中定义的自己的参数。
消息的媒体属性具有大小对象。这将包含3个或更多尺寸选项(缩略图,预览,网页尺寸等)。选择所需的那个,并使用volume_id,local_id和secret属性。工作代码看起来像这样。
upload.getFile({
location: {
_: 'inputFileLocation', (This parameter will change for other files)
volume_id: volumeId,
local_id: localId,
secret: secret
},
limit: 1024 * 1024,
offset: 0
}, {
isFileTransfer: true,
createClient: true
})
应注意以下几点。
尝试使用在原始电报库之上构建的库。我正在使用Airgram,这是一个维护良好的Repo的JS / TS库。