Ear*_*dil 6 javascript post telegram telegram-bot
我有一个字符串想要通过电报机器人发送,但不是作为消息(它相当长)而是作为文件发送。但是,我在创建此文件并将其上传到 Telegram 时遇到一些问题(因为我需要使用 API 文档https://core.telegram.org/bots/api#sending-files中指定的 multipart/form-data 来发布文件)。受/sf/answers/1600124011/的启发,我尝试了以下方法:
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);
Run Code Online (Sandbox Code Playgroud)
但我只得到一个一般错误,POST https://api.telegram.org/bot<token>/sendDocument 400 (Bad Request)
我从未使用过 XMLHttpRequest,所以我可能搞乱了它的用法,但我找不到任何解决方案。欢迎使用替代方案(可能使用纯 js)。
您的变量命名错误。您将 formdata 命名为formData,然后当您发送请求时,您将其命名为FormData。
复制并粘贴此代码,它应该可以工作。我测试了一下,确实如此。确保将 chat_id 和 token 替换为有效的,否则它将无法工作。
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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6914 次 |
| 最近记录: |