【问题标题】:How to send File via Telegram Bot如何通过 Telegram Bot 发送文件
【发布时间】:2019-08-23 12:00:48
【问题描述】:

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

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

有问题:

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

【问题讨论】:

    标签: telegram-bot


    【解决方案1】:

    为了完成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
    

    【讨论】:

    • 我想补充一点,如果聊天是公开的,即“@mychannel”,除非我们更改-F for --form-string 以指定chat_id,否则它将不起作用。像这样: curl -v --form-string "chat_id=@mychannel" -F document=@/Users/$USER/Desktop/file.txt api.telegram.org/bot/sendDocument
    【解决方案2】:

    来自 Telegram 官方文档

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

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

    通过 file_id 重新发送时无法更改文件类型。 IE。视频不能作为照片发送,照片不能作为照片发送 文件等。无法重新发送缩略图。重新发送 file_id 的照片将发送其所有尺寸。 file_id 是唯一的 每个单独的机器人,不能从一个机器人转移到另一个机器人。 通过网址发送

    通过 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 其他文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-18
      • 1970-01-01
      • 1970-01-01
      • 2017-06-06
      • 1970-01-01
      • 2021-05-09
      • 2016-05-09
      相关资源
      最近更新 更多