【发布时间】:2018-10-15 21:11:36
【问题描述】:
我正在使用 Telegram 机器人 API 和 AWS S3 从存储桶中读取数据。我需要在Telgraf方法中使用来自s3方法的数据,但我不知道如何:
'use strict'
const Telegraf = require('telegraf');
const bot = new Telegraf('TOKEN')
var AWS = require('aws-sdk')
var s3 = new AWS.S3({
accessKeyId: 'key',
secretAccessKey: 'secret'
})
var params = {Bucket: 'myBucket', Key:"ipsum.txt"};
var s3Promise = s3.getObject(params, function(err, data) {
if (err) console.log(err, err.stack);
else
var words= data.Body.toString(); //WHAT I WANT IN IN COMMAND METHOD
console.log('\n' + words+ '\n') //Returns ipsum.txt as string on console
})
bot.command('s', (ctx) => { //Bot Command
s3Promise; //Returns ipsum.txt as string on console
ctx.reply('Check console') //Meesage in Telegram
//ctx.reply(<I WANT data.Body.toSting() HERE>)
});
const { PORT = 3000 } = process.env
bot.startWebhook('/', null, PORT)
如何在 ctx.reply() 中使用 s3.getObject 方法中的数据?
【问题讨论】:
-
在 s3.getObject 中调用 bot.command
-
成功了!如果我想作为文件而不是字符串接收,我需要使用什么 s3 方法?
-
我对s3一无所知,抱歉
-
@Diego 您要将文件作为电报的附件发送吗?
-
@Diego 你试过从响应中制作一个 Blob 吗?
标签: javascript node.js amazon-web-services amazon-s3 telegram