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

使用Google Apps Script调用Smoobu API发消息遇500错误求助

问题修复:Google Apps Script调用Smoobu API发送消息报错500

错误原因分析

  • 头部参数拼写错误:ContentType 应改为标准HTTP头部字段 Content-Type
  • 请求体字段错误:Google Apps Script的UrlFetchApp中,POST请求的请求体需放在payload字段,而非data;且发送JSON格式数据时,必须将对象转为JSON字符串
  • 建议开启muteHttpExceptions: true,方便查看完整的服务器错误响应

修正后的代码

var smoobuPostOptions = {
  "method": 'post',
  "muteHttpExceptions": true, // 开启后可查看完整错误响应,便于调试
  "headers": {
    "Api-Key": "你的API密钥",
    "cache-control": "no-cache",
    "Content-Type": "application/json" // 修正头部字段拼写
  },
  "payload": JSON.stringify({ // 替换data为payload,并将JSON对象转为字符串
    "subject": "Test Subject",
    "messageBody": "Test Message"
  })
};

var txTresponse = UrlFetchApp.fetch("https://login.smoobu.com/api/reservations/31418467/messages/send-message-to-guest", smoobuPostOptions);
var txtData = JSON.parse(txTresponse.getContentText());
console.log(txtData); // 打印响应结果,辅助调试

关键修改说明

  1. 头部字段修正:Content-Type是HTTP协议规定的标准字段,拼写错误会导致服务器无法识别请求体格式,进而无法解析数据
  2. 请求体格式调整:UrlFetchApp仅识别payload作为请求体字段,且JSON数据必须转为字符串格式,否则服务器会接收到无效数据,触发500内部错误
  3. 调试开关:开启muteHttpExceptions后,即使请求失败也能获取完整响应内容,帮助定位后续可能出现的权限、参数格式等问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 09:15:32