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

如何使用pyTelegramBotAPI发送同时带链接与图片的Telegram消息

问题根因

你当前的实现是依赖Telegram的网页预览机制显示图片,而Telegram单条文本消息仅会对第一个可被解析的公开链接生成网页预览,你代码中先拼接了bit.ly短链接,后置的图片链接自然不会被识别生成预览,就出现了看不到图片的问题。


解决方法

有两种可行方案:

方案1:调整链接拼接顺序(最小改动)

把图片链接的拼接逻辑放到所有普通链接之前,让Telegram优先识别图片链接生成预览,修改后对应代码片段如下:

# 先拼接图片链接,放在最前面(零宽字符保留不要删除)
tg_message_to_send = "<a href='https://www.collinsdictionary.com/images/thumb/tree_267376982_250.jpg?version=4.0.200'>&#8205;</a>"
tg_message_to_send += "Title\n\n"
tg_message_to_send += "🔺Other text: €\n"
tg_message_to_send += "🏷Text #2: €\n"
tg_message_to_send += "Text #3 %\n\n"
tg_message_to_send += "► https://bit.ly/dsfini"

send_message方法的disable_web_page_preview参数保持为False即可正常生成图片预览。


方案2:使用send_photo方法发送(更稳定,推荐)

直接调用官方提供的图片发送接口,将图片作为独立媒体附件发送,文字内容放在caption参数中,完全不受文字内链接的影响,修改后的完整代码如下:

import telebot
from telebot import types


TOKEN = ''
bot = telebot.TeleBot(TOKEN)


tg_markup = types.InlineKeyboardMarkup(row_width=2)
tg_itembtn1 = types.InlineKeyboardButton("👉 GO 👈", url='http://google.it')
tg_markup.add(tg_itembtn1)

# 文字内容直接写在caption参数中,不需要额外加隐藏的图片链接
tg_caption = "Title\n\n"
tg_caption += "🔺Other text: €\n"
tg_caption += "🏷Text #2: €\n"
tg_caption += "Text #3 %\n\n"
tg_caption += "► https://bit.ly/dsfini"


bot.send_photo(
    chat_id='CHAT_ID_HERE',
    photo='https://www.collinsdictionary.com/images/thumb/tree_267376982_250.jpg?version=4.0.200',
    caption=tg_caption,
    parse_mode='HTML',
    reply_markup=tg_markup
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:15:03