电报:将照片中的Sen照片转换为消息,而不显示与TelegrafNodeJs的照片链接

问题描述

我在一个发送消息的通道上,该消息包含一个文本,一个链接(该链接没有图像)和一个图像(来自Amazon的提示产品):

enter image description here

我尝试使用此代码,它类似于:

bot.telegram.sendMessage('mychannel',`Hello https:/path/to/image.jpg`)

它的工作原理类似,但仍然是链接。那我该如何用图像预览而不是链接显示这种方式?

谢谢

解决方法

一种解决方法(技巧)是插入链接,但使用空字符unicode(例如来自https://emptycharacter.com/的字符)

这里是一个示例(我在插入photo URL时使用了空字符) enter image description here

一些入门示例代码:

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表示形式,并返回它。

,

没有链接就无法发送预览。您可以尝试使用自己的电报帐户注册一些帐户,但您将发现这是不可能的。 代替预览,为照片添加一些标题。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...