我想要实现在qq中获取用户上传的文件
这是我目前的代码
async addRole(role: string,session) {
session.send(`请上传${role}的音频文件`)
let quoteId ;
const input = await session.prompt((session) => {
quoteId = session.messageId
console.log(session)
return h.select(session.elements, 'file')
}, { timeout: 100000 })
console.log("file:",input)
session.send(`已收到文件`)
if (isNullable(input)) return `${quoteId ? h.quote(quoteId) : ''}输入超时,已取消。`
}
上传文件后控制台的输出是:
file: [
Element {
type: 'file',
attrs: {
src: 'silver.wav',
file: 'silver.wav',
path: '',
fileId: '74fa1218f95b09df4de35ea1c783c368_c6452956-7a68-11ef-bf38-8307ae91f46d',
fileSize: '4856778'
},
children: []
}
]
path中的值为空,这个应该是因为qq不会自动下载文件。
所以现在问题是如何能让qq自动下载该文件
我查找了onebot适配器的api
https://github.com/koishijs/koishi-plugin-adapter-onebot?tab=readme-ov-file
这里的api似乎只有一个 onebot.downloadFile()
与这个相关,我看了这个api文档
这个api似乎是下载网络文件,但是我还是将fileid传进去尝试了
但获得了如下报错
到这里就没有头绪了。有没有人救救我