[英]Upload files with telegram bot - NodeJS
我想將.txt
文件上傳到使用我的JavaScript機器人電報。 我已經在php和python中看到了一些示例,但聽不懂,所以我只需要一個js示例即可找出答案。
我應該先上傳文件然后再sendDocmuent
還是應該在sendDocmuent
輸入?
我嘗試了sendDocument
和document: 'file.txt'
但沒有用。
還閱讀了有關表單數據的信息,但一無所獲!
call("sendDocument",{
chat_id: owner,
document: 'file.txt' // or /file.txt or full address (C:...)
});
我沒有使用任何庫,這是我的調用函數:
const botUrl = "https://api.telegram.org/bot" + token + "/";
const request = require('request');
function call(method, params, onResponse)
{
var requestData = params;
var data = {
url: botUrl+method,
json: true,
body: requestData
};
request.post(data, function(error, httpResponse, body){
if (onResponse) {
if(body)
{
onResponse(body.result);
}
}
});
}
編輯:這是對我有用的代碼。
看來Telegram API從來不需要sendDocument方法的文件名:
文件發送。 傳遞file_id作為String來發送電報服務器上存在的文件(推薦),傳遞HTTP URL作為Telegram的字符串來從Internet獲取文件,或者使用multipart / form-data上載新文件
正如您所猜測的那樣,您不僅需要發送字符串'file.txt'
,還需要實際發送文件的內容(作為多部分/表單數據)。 基於此答案 ,您只需要修改request
對象的form
字段:
const request = require('request')
const fs = require('fs')
const token = '752511654:AAGnu88dyi7YsmpZfcaA6XvR26Fy7f2moGo'
const url = 'https://api.telegram.org/bot'+token+'/sendDocument'
const chat_id = "741718736"
let r = request(url, (err, res, body) => {
if(err) console.log(err)
console.log(body)
})
let f = r.form()
f.append('chat_id', chat_id)
f.append('document', fs.createReadStream('file.txt'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.