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

Dialogflow JSON脚本求助:实现LINE平台触发关键词随机返回指定图片

解决Dialogflow在LINE平台随机返回指定图片的问题

嘿,我来帮你搞定这个问题!你原来的静态JSON响应没法实现随机返回图片的功能,因为Dialogflow的默认响应系统不支持逻辑判断或随机选择操作。要实现这个需求,必须借助**Fulfillment(履行功能)**编写自定义代码来动态生成响应,具体步骤如下:

步骤1:启用Dialogflow的Fulfillment功能

  • 打开你的Dialogflow代理后台,切换到Fulfillment标签页
  • 启用Inline Editor(这是最方便快速测试的方式,不用自己搭建服务器)

步骤2:编写Node.js实现随机图片逻辑

把内联编辑器里的默认代码替换成下面的内容:

'use strict';

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

process.env.DEBUG = 'dialogflow:debug'; // 开启调试日志,方便排查问题

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
  const agent = new WebhookClient({ request, response });

  // 把你需要随机返回的图片URL都放在这个数组里
  const imageUrlList = [
    "https://i.ibb.co/2Kb9hWV/Somepics-001.png",
    "https://i.ibb.co/2Kb9hWV/otherpics-001.png",
    "https://i.ibb.co/2Kb9hWV/pics-201.png"
  ];

  // 核心逻辑:随机选一张图片并返回给LINE用户
  function sendRandomImageResponse(agent) {
    // 生成随机索引,从数组里选一个URL
    const randomIdx = Math.floor(Math.random() * imageUrlList.length);
    const targetImageUrl = imageUrlList[randomIdx];

    // 构造符合LINE平台要求的图片消息格式
    agent.add(new Payload(agent.LINE, {
      "type": "image",
      "originalContentUrl": targetImageUrl,
      "previewImageUrl": targetImageUrl
    }, {sendAsMessage: true}));
  }

  // 绑定意图:把你的触发关键词对应的意图名称和处理函数关联起来
  const intentMap = new Map();
  intentMap.set('你的意图名称', sendRandomImageResponse); // 这里替换成你实际的意图名称
  agent.handleRequest(intentMap);
});

步骤3:配置意图的Webhook触发

  • 切换到你设置了触发关键词的意图页面
  • 滚动到Fulfillment部分,勾选Enable webhook call for this intent
  • 保存意图和Fulfillment代码

关键注意事项

  • 一定要替换代码里的你的意图名称为你实际创建的、对应触发关键词的意图名称
  • LINE平台的图片消息要求必须提供originalContentUrl(原图链接)和previewImageUrl(预览图链接),这里我们直接用同一个URL即可
  • 确保你的图片链接是公开可访问的,LINE服务器需要能抓取到图片内容

这样设置之后,当用户触发对应的关键词时,Dialogflow就会通过Fulfillment代码随机返回你指定的其中一张图片啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:38:53