我在一个发送包含文本的消息的频道上,带有链接(该链接没有图像)和图像(来自亚马逊的提示产品):
我试过这段代码,它是相似的:
bot.telegram.sendMessage('mychannel', `Hello https:/path/to/image.jpg`)
它的工作原理类似,但它仍然是链接。那么我怎么能用图像预览而不是链接呢?
谢谢
我在一个发送包含文本的消息的频道上,带有链接(该链接没有图像)和图像(来自亚马逊的提示产品):
我试过这段代码,它是相似的:
bot.telegram.sendMessage('mychannel', `Hello https:/path/to/image.jpg`)
它的工作原理类似,但它仍然是链接。那么我怎么能用图像预览而不是链接呢?
谢谢
一种解决方法(技巧)是插入链接但使用空字符 unicode(例如来自https://emptycharacter.com/)
这是一个示例(我插入了带有空字符 的照片 URL )
一些示例代码可以帮助您入门:
const Telegraf = require("telegraf");
const bot = new Telegraf(" ... ");
const CHAT_ID = ... ;
function getHiddenLink(url, parse_mode = "markdown") {
const emptyChar = ""; // copied and pasted the char from https://emptycharacter.com/
switch (parse_mode) {
case "markdown":
return `[${emptyChar}](${url})`;
case "HTML":
return `<a href="${url}">${emptyChar}</a>`;
default:
throw new Error("invalid parse_mode");
}
}
// Option 1: sending with MARKDOWN syntax
bot.telegram.sendMessage(
CHAT_ID,
`
some test text in markdown
${getHiddenLink("https://i.stack.imgur.com/TPKR5.png", "markdown")}
`,
{
parse_mode: "markdown",
}
);
// Another option: sending with HTML syntax
bot.telegram.sendMessage(
CHAT_ID,
`
some test text in HTML
${getHiddenLink("https://i.stack.imgur.com/TPKR5.png", "HTML")}
`,
{
parse_mode: "HTML",
}
);
在这里,我们只创建一个getHiddenLink()
接受 URL 和 parse_mode(HTML 或 markdown)的新函数,并使用空字符作为链接文本创建一个新的 URL 表示并返回它。
没有链接就无法发送预览。您可以尝试通过自己的电报帐户拥有一些,您会发现这是不可能的。代替预览,为照片添加一些标题。