亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過電報機器人上傳和發送字符串作為文件

通過電報機器人上傳和發送字符串作為文件

慕田峪7331174 2021-06-02 15:11:51
我有一個字符串,我想通過電報機器人發送,但不是作為消息(它很長)而是作為文件發送。但是,我在創建此文件并將其上傳到 Telegram 時遇到了一些問題(因為我需要使用 API 文檔https://core.telegram.org/bots/api#sending-files 中指定的 multipart/form-data 發布文件)。受https://stackoverflow.com/a/22858914/4869973 的啟發,我嘗試了以下操作: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);但我只得到一個通用錯誤POST https://api.telegram.org/bot<token>/sendDocument 400 (Bad Request) 我從未使用過 XMLHttpRequest 所以我可能搞砸了它的使用,但我找不到任何解決方案。歡迎使用替代方案(可能使用純 js)。
查看完整描述

1 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

你的變量命名是錯誤的。您將 formdata 命名為 as formData,然后在發送請求時將其命名為FormData。


復制并粘貼此代碼,它應該可以工作。我測試了它,它確實如此。確保用有效的替換 chat_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);


查看完整回答
反對 回復 2021-06-03
  • 1 回答
  • 0 關注
  • 236 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號