telegram电报机器人如何获取上传文件的file-电报telegram技巧分享

telegram上传bot

前言

tele-aria2 是一个可以控制 Aria2 服务端的 Telegram Bot ,它可以发使命到长途 Aria2 进行下载、察看使命、删除使命等操作。正确来说它是一个 Aria2 前端程序,只不外情势不是我们所熟知的 AriaNg 那样的 Web 页面,而是以一个聊天机器人的情势存在。假如 Aria2 设置好联动 Rclone 主动上传,那么就可以实现发送下载链接给 Bot → Aria2 下载 → Rclon!e 主动上传文件到 Google Drive 等网盘的骚操作。

摆设 Aria2

Aria2 一键安装管理脚本 加强版 (GNU/Linux) 和 Aria2 Pro (Docker) 任选其一,这里不做赘述了。假如需要主动上传那么就需要设置联动 Rclone 的步骤,能正常下载并上传即代表摆设工作完成,不然忽略这个步骤即可。

获取 Telegram Bot 访问令牌

使用 @BotFather 创建自己的 Bot 并获取访问令牌(

<TOKEN>

),過逞如图所示:

获取用户 ID


    给刚创建 Bot 任意发送一个信息

  • 访问

    https://api.telegram.org/bot<TOKEN>/getUpdates

    (更换

    <TOKEN>

    字段),会得到一长串信息,此中

    "id":

    字段背面的数字就是所要获取的用户 ID 。

摆设 tele-aria2

为了防备环境不统一导致摆设失败将使用 Docker 进行摆设。

  • 首先编写一个 设置文件 ,从上到下依次是 Aria2 RPC 地点、密钥、代理地点、Bot 访问令牌、用户 ID、使命表现数目最大值。根据自己的实际环境填写,自由地域的 VPS 可以去掉代理地点设置。

  • { "aria2-server": "ws://10.0.0.2:6800/jsonrpc", "aria2-key": "P3TERX_2020", "proxy": "http://127.0.0.1:7890", "bot-key": "123456789:xyz", "user-id": "123456", "max-index": 10 }


    TIPS:

    假如你需要多用户支持,用户 ID 之间用

    ,

    (半角逗号)隔开即可,就像这样:

    "user-id": "123,456,789"

  • 把编写好的设置文件保存到

    ~/.tele-aria2-conf.json

    (这个文件名称和路径随意,自己知道就行,背面的 Docker 运行下令中记得更换)

  • nano ~/.tele-aria2-conf.json


    docker run -d \ --name tele-aria2 \ --restart unless-stopped \ --log-opt max-size=1m \ --network host \ -v ~/.tele-aria2-conf.json:/config.json \ p3terx/tele-aria2:0.2.2

  • 发送

    /start

    给 Bot ,Bot 回答并弹出菜单即代表摆设结果。
  • 使用 Bot 控制 Aria2 下载

  • 发送链接要么种子文件即可开始下载,下载完成会有通知。
  • 范围性

    • 无法在 Bot 中直接察看上传进度,毕竟只是 Aria2 的前端
    • 临时一个 Bot 只能控制一个 Aria2 服务端

    尾巴

    tele-aria2 现在尚处于低级开发阶段,功能比较极简,不外 Aria2 绝大多数时间的使用场景是添加、暂停、删除使命。AriaNg 功能强盛,但由于开发者为了保持操作逻辑的严谨性(添加使命前可修改默认参数),因此捐躯掉批量添加种子功能,而 tele-aria2 可以一次性发送多个种子来实现批量添加种子,肯定程度上也补充了 AriaNg 这个功能的缺失。以是说在日常使用场景中 tele-aria2 可以替换 AriaNg ,而在需要单独定制使命参数要么察看使命进度时使用 AriaNg ,二者相辅相成应该算是现在 Aria2 前端最佳解决方案。


    更多 Aria2 教程


    相关 TG 频道: Aria2 Channel

    相关 TG 群组: Aria2 Group


    本博客已开设 Telegram 频道 ,欢迎小同伴们订阅关注。

    In telegram API documentation I see: “You can either pass a

    file_id

    as String to resend a photo that is already on the Telegram servers”, but I can’t find ways to get file_id of uploaded file. How can I get it?

    在电报API文档中,我看到:“你可以将file_id作为String通报给重新发送已经在Telegram服务器上的照片”,但我找不到获取上传文件的file_id的方法。我怎么才能得到它?

    3 个解决方案


    1

    Say you receive a

    Message

    with an array of

    PhotoSize

    假设您收到一个包含PhotoSize数组的消息

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

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

    As you can see, there’s a

    file_id

    , you can use this to send a photo through

    sendPhoto

    .

    如您所见,有一个file_id,您可以使用它通过sendPhoto发送照片。

    If we assume

    Update

    is an object, with in it a

    Message

    object, which in turn provides a

    Chat

    object with in it a

    id

    of the chat where the initial message came from and an array of

    PhotoSize

    (excuse me for using PHP here, but that’s my main language…)

    假如我们假设Update是一个对象,此中包含一个Message对象,该对象又提供了一个Chat对象,此中包含初始消息来自的聊天ID和一个PhotoSize数组(请包涵我在这里使用PHP,但是这是我的重要语言…)


    $update->message->photo

    is how you can access the array. Use some kind of For loop to iterate over the items, or just access the first one if the array isn’t bigger than 1.

    $ update-> message-> photo是怎样访问数组的。使用某种For循环来迭代项目,要么只是在数组不大于1时访问第一个。

    After that, you can use the result(s) to extract the

    file_id

    and send it as a

    string

    via

    sendPhoto

    ‘s

    photo

    parameter and the Chat ID via the

    chat_id

    parameter.

    之后,您可以使用结果提取file_id并通过sendPhoto的photo参数和聊天ID通过chat_id参数将其作为字符串发送。

    I hope this helped!

    我盼望这有帮助!

    P.S. Here is a diagram of my current implementation of the API, i hope it brings some clarity to you!

    附:这是我现在的API实现图,我盼望它给你带来一些清楚度!

    first you should download the photo with this api to your bot


    https://api.telegram.org/bot<token>/getfile?file_id={the file_id of the photo you want to download}

    then it returns you a response of a File which has an attribute named file_path

    then using the file_path you can download the photo full size using this


    https://api.telegram.org/file/bot<token>/<file_path>

    all of this is based on official documentation found here . Telegram API Doc

    本文网址:

    http://www.1cm8858.com/d/202071411433_7359_523498786/home

    Ten articles before and after

    不仅韩国n号房南韩Telegram上剥削数十位性奴隶-电报telegram技巧分享

    “telegram”的发音:如何用英语日语备考常用标点符号怎么读?-电报telegram技巧分享

    第125章国内电报一个字多少钱?-电报telegram技巧分享

    抗日时期200毫瓦(0.2W)的短波7.023MHZ电报机-电报telegram技巧分享

    中国用微信、海外用电报个人频道介绍:安利狂-电报telegram技巧分享

    一键部署MTPROTO公益TG代理发布频道-电报telegram技巧分享

    微信和telegram比微信更好用的通讯软件-电报telegram技巧分享

    What is 100/8 as a decimal? (Convert 100/8 to decimal)

    5招「隐身」使用telegram运用有用防备个人资料外泄及庇护私隐-电报telegram技巧分享

    晚清电报和铁路的性质之争十月革命炮响是怎样传到中国-电报telegram技巧分享