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

Google Apps Script与Eventbrite Webhook集成问题求助

问题排查与解决方案

一、日志无法查看的解决办法

  • 放弃console.log:Web App运行在GAS服务器端,前端的console.log不会输出到任何地方,完全没用。
  • 正确查看Logger.log日志:打开脚本编辑器,点击顶部菜单栏「查看」→「日志」,或者切换到「执行」标签页,查看对应的执行记录详情。
  • 更直观的调试方式:直接把日志写入专门的Sheet表,比如新建一个「日志」工作表,在脚本里添加:
    function writeLog(message) {
      const logSheet = SpreadsheetApp.openById('你的SheetID').getSheetByName('日志');
      logSheet.appendRow([new Date().toLocaleString(), message]);
    }
    
    然后在关键逻辑节点调用writeLog('处理Eventbrite数据:' + JSON.stringify(data)),直接在Sheet里看日志。

二、Eventbrite返回302重定向的核心问题解决

1. 修正Web App部署设置

  • 部署时「执行方式」必须选**「我自己」**,如果选「用户访问Web应用时」,匿名请求会被跳转到Google登录页,直接返回302。
  • 「谁可以访问此应用」选**「任何人,甚至匿名」**,确保Eventbrite的请求能直接访问。
  • 每次修改代码后必须重新部署,复制新生成的Web App链接给Eventbrite,旧链接会失效。

2. 确保doPost函数返回正确响应

Eventbrite的Webhook要求接收端返回200状态码,不能有重定向,必须用ContentService返回响应,示例代码:

function doPost(e) {
  // 1. 记录请求数据(调试用)
  const logSheet = SpreadsheetApp.openById('你的SheetID').getSheetByName('日志');
  logSheet.appendRow([new Date().toLocaleString(), '请求内容:' + e.postData.contents]);

  // 2. 解析Eventbrite数据并写入Sheet
  try {
    const eventData = JSON.parse(e.postData.contents);
    const dataSheet = SpreadsheetApp.openById('你的SheetID').getSheetByName('数据');
    // 根据Eventbrite数据结构提取字段,比如事件名称、订单号等
    dataSheet.appendRow([
      new Date(),
      eventData.event.name.text,
      eventData.order.id,
      eventData.attendees[0].profile.name
    ]);

    // 3. 返回成功响应
    return ContentService.createTextOutput('SUCCESS').setMimeType(ContentService.MimeType.TEXT);
  } catch (error) {
    // 记录错误日志
    logSheet.appendRow([new Date().toLocaleString(), '错误:' + error.message]);
    // 返回错误响应
    return ContentService.createTextOutput('ERROR: ' + error.message).setMimeType(ContentService.MimeType.TEXT);
  }
}

3. 验证Web App是否返回200

用curl加-v参数测试,看响应头里的状态码:

curl -v -X POST -H "Content-Type: application/json" -d '{"test":"data"}' https://script.google.com/macros/s/你的部署ID/exec

如果返回HTTP/2 200,说明Web App正常,再重新配置Eventbrite的Webhook。

4. 检查Eventbrite Webhook设置

  • 确保Webhook的触发事件正确,比如「订单创建」「参会者注册」等。
  • 确保请求方式是POST,GAS的doPost只处理POST请求,doGet处理GET。

内容的提问来源于stack exchange,提问作者Young and Social

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 22:47:45