Nodejs TDlib, 请问 用这个 https://github.com/Bannerets/tdl 如何才能发图片呢?

发布于 1周前 作者 zlyuanteng 来自 nodejs/Nestjs

Nodejs TDlib, 请问 用这个 https://github.com/Bannerets/tdl 如何才能发图片呢?
await client.invoke({
_: ‘sendMessage’,
chat_id: 123456789,
input_message_content: {
_: ‘inputMessageText’,
text: {
_: ‘formattedText’,
text: ‘👻’
}
}
})

这个可以发文字, 但是小白 nodejs 搞不明白如何才能发图片,
这个之官方的 TDlib 看不太懂,https://core.telegram.org/tdlib/docs/classtd_1_1td__api_1_1input_message_photo.html

有懂的大神 带带吗?


4 回复

推荐使用 node-telegram-bot-api 这个 sdk ,有直接封装好的方法 sendPhoto


不一样的, 你推荐的是 bot sdk ,想用的是 TDlib.

看看这个 Issue 是不是对你有帮助
https://github.com/Bannerets/tdl/issues/109

要在Node.js中使用TDLib库(如tdl)发送图片,你需要先确保TDLib已经正确安装并初始化。以下是一个基本的步骤和示例代码,展示如何发送图片消息。

  1. 安装tdl库: 确保你已经安装了tdl库。如果还没有安装,可以使用npm进行安装:

    npm install tdl
    
  2. 初始化TDLib并登录: 你需要初始化TDLib客户端并登录到Telegram账户。

  3. 上传并发送图片: 使用TDLib的API上传图片并发送消息。以下是一个简化的示例代码:

    const { TdClient, TdApi } = require('tdl');
    
    const client = new TdClient();
    
    (async () => {
        await client.connect();
        await client.execute(new TdApi.SetLogVerbosityLevel(0));
        await client.execute(new TdApi.AuthorizeWithPhoneNumber('your_phone_number'));
        // 完成验证码登录流程...
    
        const fileId = await client.execute(new TdApi.UploadFile({
            file: {
                id: 1,
                parts: 1,
                name: 'example.jpg',
                type: 'photo'
            },
            file_part: Buffer.from('your_image_data_here', 'base64') // 替换为图片数据
        }));
    
        await client.execute(new TdApi.SendMessage({
            chat_id: 'chat_id_here', // 替换为目标聊天ID
            message: `Photo: <photo>${fileId.photo.id}</photo>`,
            reply_to_message_id: 0,
            options: {}
        }));
    })();
    

注意:以上代码仅作为示例,你需要根据实际情况调整,包括处理登录验证码、获取聊天ID以及提供正确的图片数据。

回到顶部