如何使用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
相关产品推荐
相关产品推荐

