gpt4 book ai didi

node.js - 如何下载使用 telegraf 模块发送到我的电报机器人的文件或照片?

转载 作者:行者123 更新时间:2023-12-05 01:15:47 26 4
gpt4 key购买 nike

我正在使用 node.js telegraf用于创建电报机器人的模块。

我正在使用下面的代码。

var picture = (context)ctx.message.photo[0].file_id; 
var photo = `https://api.telegram.org/bot1234-ABCD/getFile?file_id=${picture}`;
console.log(photo.file_path);

最佳答案

您可以使用 axios 来存储图像。假设您的文件 id 为 fileId,上下文为 ctx。我将图像存储在路径 ${config.basePath}/public/images/profiles/${ctx.update.message.from.id}.jpg

ctx.telegram.getFileLink(fileId).then(url => {    
axios({url, responseType: 'stream'}).then(response => {
return new Promise((resolve, reject) => {
response.data.pipe(fs.createWriteStream(`${config.basePath}/public/images/profiles/${ctx.update.message.from.id}.jpg`))
.on('finish', () => /* File is saved. */)
.on('error', e => /* An error has occured */)
});
})
})

如何获取为机器人发送的图像的文件 ID

bot.on('message', ctx => {
const files = ctx.update.message.photo;
// telegram stores the photos for different sizes
// here is a sample files result
// [ { file_id:
// 'AgADBAADgbAxG768CFDXChKUnJnzU5jjLBsABAEAAwIAA20AA_PFBwABFgQ',
// file_size: 29997,
// width: 320,
// height: 297 },
// { file_id:
// 'AgADBAADgbAxG768CFDXChKUnJnzU5jjLBsABAEAAwIAA3gAA_HFBwABFgQ',
// file_size: 80278,
// width: 580,
// height: 538 } ]
// })

// I am getting the bigger image
fileId = files[1].file_id
// Proceed downloading
});

别忘了将 axios 安装为 npm install axios --save 并要求它为 const axios = require('axios')

注意不要公开发布文件链接,因为它会暴露您的机器人 token 。

关于node.js - 如何下载使用 telegraf 模块发送到我的电报机器人的文件或照片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55237872/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com