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

如何在Dialogflow聊天机器人中向Telegram发送动图?

解决Dialogflow聊天机器人在Telegram中发送动图的问题

嘿,我来帮你搞定这个动图显示的问题!你之前用Custom payload的方式之所以只显示链接,是因为Telegram的文本消息里的Markdown语法并不支持直接嵌入图片——[alt](url)这种写法只会被解析成普通链接,而不是展示图片。下面给你两种可行的解决方案:

方法一:直接用Custom payload发送动图(无需Webhook)

Telegram Bot API专门提供了animation字段来发送GIF动图,你只需要修改Custom payload的JSON结构即可:

{
  "telegram": {
    "animation": {
      "url": "path/dog.gif",
      "caption": "这里可以添加动图的说明文字(可选)"
    }
  }
}

这样配置后,Telegram会直接加载并显示你的GIF动图,而不是显示链接。注意要确保你的GIF URL是公开可访问的,不然Telegram服务器拉取不到资源哦。

方法二:用Node.js Webhook实现

如果你还是想用Webhook来控制,那可以通过Dialogflow的dialogflow-fulfillment库构造正确的Telegram响应。这里给你一个示例代码:

const { WebhookClient, Payload } = require('dialogflow-fulfillment');

exports.dialogflowWebhook = (req, res) => {
  const agent = new WebhookClient({ req, res });

  // 处理发送动图的意图
  function sendGifIntent(agent) {
    // 构造Telegram的动图响应 payload
    const telegramGifPayload = {
      animation: {
        url: "path/dog.gif",
        caption: "这是一只超可爱的狗狗动图!"
      }
    };
    
    // 发送payload到Telegram
    agent.add(new Payload(agent.TELEGRAM, telegramGifPayload, { sendAsMessage: true }));
  }

  // 绑定意图和处理函数(替换成你的意图名称)
  const intentMap = new Map();
  intentMap.set('SendDogGifIntent', sendGifIntent);
  
  agent.handleRequest(intentMap);
};

注意事项:

  • 确保你的Webhook服务是公开可访问的(开发阶段可以用ngrok做临时转发)
  • 在Dialogflow的控制台正确配置Webhook的URL和触发意图
  • 区分animation(用于GIF)和photo(用于静态图片)字段,别用错了

内容的提问来源于stack exchange,提问作者Pablo León

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:22:19