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

如何用Twilio Functions更新Salesforce Case为Closed并解决JSON报错?

问题解决:JSON.parse 语法错误(Unexpected end of JSON input)

核心原因

你代码里的requestPayload使用了HTML实体编码的引号("),这不是有效的JSON格式字符。JSON.parse解析时无法识别",导致解析失败,抛出"Unexpected end of JSON input"错误。

修复方案

方案1:直接使用JSON对象(推荐)

完全跳过字符串转义+解析的步骤,直接定义要发送的对象,避免JSON解析环节的错误:

exports.handler = function(context, event, callback) {
  // 直接定义JSON对象,无需parse
  const stts = { Status: "Closed" };

  getTokenInformation()
    .then(token => {
      const options = {
        Authorization: 'Bearer ' + token.access_token,
        'Content-Type': 'application/json'
      };
      return got(`${token.instance_url}/services/data/v56.0/sobjects/Case/${event.caseId}`, {
        headers: options,
        json: true,
        method: 'PATCH',
        body: stts,
      });
    })
    // 补充缺失的Promise处理逻辑,确保结果或错误能正确回调
    .then(response => {
      console.log('Case状态更新成功:', response.body);
      callback(null, { success: true });
    })
    .catch(error => {
      console.error('更新失败:', error);
      callback(error);
    });
};

方案2:修复JSON字符串格式

如果一定要用字符串形式传递,把"替换为真实的双引号,保证JSON格式合法:

// 用真实双引号替代HTML实体编码字符
const requestPayload = '{"Status":"Closed"}';
const stts = JSON.parse(requestPayload);

额外注意事项

你提供的代码片段不完整,缺少.then()的后续处理和.catch()异常捕获逻辑,这会导致代码执行完成后无法正确触发Twilio的callback,建议补充完整,确保请求结果能正确返回或错误能被捕获处理。

内容的提问来源于stack exchange,提问作者M.ho

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 01:55:34