如何通过电报Bot发送文件

时间:2019-04-02 08:22:28

标签: telegram-bot

我需要使用TelegramBot API发送txt文件。

我已经尝试过https://api.telegram.org/botMYT0KEN/sendDocument?chat_id=569502265&document=/Users/users/Desktop/file.txt

有问题:

  

{“ ok”:false,“ error_code”:400,“ description”:“ Bad Request:远程错误   指定的文件ID:字符串长度错误”}

2 个答案:

答案 0 :(得分:0)

来自Telegram官方文档

  

发送文件有三种发送文件的方法(照片,贴纸,音频,媒体等):

     

如果文件已经存储在Telegram服务器上的某个位置,则您   无需重新上传:每个文件对象都有一个file_id字段,   只需将此file_id作为参数传递,而不是上传。那里   对以这种方式发送的文件没有限制。为电报提供HTTP   发送文件的URL。电报将下载并发送文件。   照片的最大大小为5 MB,其他类型的内容的最大大小为20 MB。   使用文件的通常方式使用multipart / form-data发布文件   通过浏览器上传。照片最大大小为10 MB,照片最大大小为50 MB   其它文件。通过file_id发送

     

通过file_id重新发送时,无法更改文件类型。   即视频不能作为照片发送,照片不能作为照片发送   文档等。无法重新发送缩略图。重新发送一个   由file_id拍摄的照片将发送其所有尺寸。 file_id是唯一的   每个机器人,并且不能从一个机器人转移到另一个。   通过URL发送

     

通过URL发送时,目标文件必须具有正确的MIME类型   (例如,用于sendAudio的音频/ mpeg等)。在sendDocument中,通过   目前,URL仅适用于gif,pdf和zip文件。使用   sendVoice,该文件的类型必须为audio / ogg且不超过   1MB的大小。 1–20MB语音便笺将作为文件发送。其他   配置可能有效,但我们不能保证一定会。

https://core.telegram.org/bots/api

这是您从问题中所需要的:

  

使用multipart / form-data以文件通常的方式发布文件   通过浏览器上传。照片最大大小为10 MB,照片最大大小为50 MB   其他文件

答案 1 :(得分:0)

为完成Donny的回答,我想添加一个发送.txt文件作为文档的示例。

好像您正在使用OS X作为操作系统,它已预安装了curl实用程序。

打开终端并发出这样的请求:

curl -v -F "chat_id=569502265" -F document=@/Users/users/Desktop/file.txt https://api.telegram.org/bot<TOKEN>/sendDocument