繁体   English   中英

Telegram bot 的循环问题

[英]Loop problems with Telegram bot

我目前正在开发一个电报机器人。

这是我的代码:

bot.command('check', ctx => {
console.log(ctx.from.id, ctx.chat.id)
var files = getFilesFromDir("toSend", [".txt"])
if(files.length > 0){

  for (i = 0; i < files.length; i++) {
    const url = 'https://api.telegram.org/bot'+bot_token+'/sendDocument'

    let r = request(url, (err, res, body) => {
        if(err) console.log(err)
        console.log(body)
    })
    console.log(files[i])
    let f = r.form()
    f.append('chat_id', '476090013')
    f.append('document', fs.createReadStream("tosend/"+files))
  }
}else{
  console.log('r')
}
})

我的问题是循环,我尝试了for但我想不通。

我有一个名为tosend的文件夹,我希望将其中的每个文件都传输到电报 api。

对于一个文件,它正在工作,但如果文件夹中有多个文件, f.append('document', fs.createReadStream("tosend/"+files)) +files 使用每个名称而不是一个。

您正在尝试从文件数组创建流: +files (它将返回一个包含所有文件名的逗号分隔字符串)。

您需要使用files[i]为每个文件创建一个流。

f.append('document', fs.createReadStream("tosend/" + files[i]))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM