You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Node.js版TDlib发送图片?

用TDL发送图片的正确流程

要解决发送图片失败的问题,你得先完成文件上传拿到有效的文件ID,再用这个ID调用sendMessage接口。具体步骤如下:

  • 第一步:上传本地图片到Telegram服务器
    调用client.invoke执行uploadFile方法,指定本地图片路径和文件类型,获取远程文件ID:

    // 上传本地图片
    const uploadResult = await client.invoke({
      _: 'uploadFile',
      file: {
        _: 'inputFileLocal',
        path: '/path/to/your/image.jpg' // 替换为你的本地图片实际路径
      },
      file_type: {
        _: 'inputFileTypePhoto'
      },
      priority: 1 // 设置上传优先级,1为最高
    })
    // 上传成功后,提取远程文件ID
    const remoteFileId = uploadResult.file.id
    
  • 第二步:使用获取到的文件ID发送图片
    修正你之前代码的语法错误(所有TL对象的标识键必须是_,不能留空),填入有效的远程文件ID:

    await client.invoke({
      _: 'sendMessage',
      chat_id: user_id,
      disable_notification: false,
      from_background: true,
      input_message_content: {
        _: 'inputMessagePhoto',
        photo: {
          _: 'inputFileRemote',
          id: remoteFileId // 填入上传得到的文件ID
        }
      }
    })
    

补充说明:上传过程中TDLib会通过updateFile事件返回上传进度,你可以监听该事件跟踪状态;如果上传失败,检查文件路径是否正确、程序是否有读取文件的权限。

内容的提问来源于stack exchange,提问作者heitumo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 20:05:15