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

Botpress集成Google Apps Script调用API返回404错误排查

Botpress调用Google Apps Script Web App返回404错误(未处理302重定向)

问题场景

我正在把Botpress和Google Apps Script(GAS)集成,GAS是个从Google Classroom拉取作业并返回JSON数据的Web应用。直接在浏览器里访问GAS的URL能正常拿到预期数据,但用Botpress的Call API节点调用时,却一直返回404 Not Found错误。

GAS配置情况

  • GAS Web App已经设置为「任何人都可访问」
  • 浏览器访问URL完全正常,能返回正确的JSON数据

已尝试的排查操作

  • 移除了URL末尾的斜杠
  • 反复确认Web App的访问权限确实是「任何人都可访问」
  • 调整过查询参数,没有任何效果

关键测试发现

用curl命令测试时发现,GAS的URL会返回302重定向响应,加上-L参数(让curl跟随重定向)后就能正常获取JSON数据。由此推测问题出在Botpress这边——它默认没有处理302重定向,导致最终请求到了错误的地址,返回404。


解决方法

方法1:开启Call API节点的重定向跟随

Botpress的Call API节点默认可能没开重定向跟随,按以下步骤设置:

  1. 打开Call API节点的配置界面
  2. 找到「高级设置」(Advanced Settings)板块
  3. 勾选「跟随重定向」(Follow Redirects)选项
  4. 保存配置后重新测试调用

方法2:用自定义代码节点替代Call API

如果Call API节点没有重定向配置选项,就用自定义代码节点,用支持重定向的HTTP库(比如axios)发起请求:

const axios = require('axios');

async function run() {
  try {
    // 替换成你的GAS Web App URL
    const response = await axios.get('https://script.google.com/macros/s/你的部署ID/exec', {
      maxRedirects: 5, // 设置允许的最大重定向次数
      followRedirect: true // 开启跟随重定向
    });
    // 把返回的数据传递给后续节点
    bp.events.reply(event, { type: 'custom', data: response.data });
  } catch (error) {
    console.error('请求出错:', error);
    bp.events.reply(event, { type: 'custom', error: error.message });
  }
}

run();

额外验证项

  • 确认GAS Web App是最新部署的:修改GAS代码后必须重新部署,否则旧版本的URL可能失效
  • 检查Botpress的网络环境:确保Botpress服务器能访问script.google.com,没有被防火墙或代理拦截

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 07:02:39