Javascript 通过电报机器人上传和发送字符串作为文件

Javascript 通过电报机器人上传和发送字符串作为文件,javascript,post,telegram,telegram-bot,Javascript,Post,Telegram,Telegram Bot,我有一个字符串,我想通过电报机器人发送,但不是作为消息(相当长),而是作为文件。 但是,我在创建此文件并将其上载到Telegram时遇到了一些问题(因为我需要使用API文档中指定的多部分/表单数据发布此文件)。 受此启发,我尝试了以下方法: var file = new Blob([enc_data], {type: 'text/plain'}); var formData = new FormData(); formData.append('chat_id', '<id>'); f

我有一个字符串,我想通过电报机器人发送,但不是作为消息(相当长),而是作为文件。 但是,我在创建此文件并将其上载到Telegram时遇到了一些问题(因为我需要使用API文档中指定的多部分/表单数据发布此文件)。 受此启发,我尝试了以下方法:

var file = new Blob([enc_data], {type: 'text/plain'});
var formData = new FormData();
formData.append('chat_id', '<id>');
formData.append('document', file);

var request = new XMLHttpRequest();
request.open('POST', 'https://api.telegram.org/bot<token>/sendDocument');
request.send(FormData);
var file=newblob([enc_data],{type:'text/plain'});
var formData=new formData();
formData.append('chat_id','');
formData.append('文档',文件);
var request=new XMLHttpRequest();
请求打开('POST','https://api.telegram.org/bot/sendDocument');
请求。发送(FormData);
但是我只得到一个一般性的错误
POSThttps://api.telegram.org/bot/sendDocument 400(错误请求)
我从未使用过XMLHttpRequest,所以我可能弄乱了它的用法,但我找不到任何解决方案。
欢迎选择(可能使用纯js)。

您的变量命名错误。您将formdata命名为
formdata
,然后在发送请求时将其命名为
formdata

复制并粘贴此代码,它应该可以工作。我测试过了,确实如此。确保将聊天id和令牌替换为有效的,否则将无法使用。

var chat_id = 3934859345; // replace with yours
var enc_data = "This is my default text";
var token = "45390534dfsdlkjfshldfjsh28453945sdnfnsldfj427956345"; // from botfather

var blob = new Blob([enc_data], { type: 'plain/text' });

var formData = new FormData();
formData.append('chat_id', chat_id);
formData.append('document', blob, 'document.txt');

var request = new XMLHttpRequest();
request.open('POST', `https://api.telegram.org/bot${token}/sendDocument`);
request.send(formData);

工作得很有魅力,真不敢相信这是一个如此微不足道的错误!