如何解决使用 Google Apps 脚本从 Zoom API 发送补丁时发生的错误

问题描述 投票:0回答:1

我尝试使用 GAS(Google-apps-script)发送 Zoom API 更新用户设置的补丁。 但是,出现以下错误。

已确认该API在Postman中运行没有问题。 OAuth 令牌本身似乎没有问题。

给出以下代码:

function test_updateUserSetting(){

  let userEmail = "Zoom User Email"
  let url = 'https://api.zoom.us/v2/users/' + userEmail + '/settings'

  const token = getToken() // get OAuth token
  Logger.log(token)


  let raw = JSON.stringify({
    "feature": {
      "webinar": true,
      "webinar_capacity": 500
    }
  });

  let requestOptions = {
    'method' :  'PATCH',
    'contentType': 'application/json',
    'headers': {'Authorization' : 'Bearer ' + token},
    'payload': raw
  };

  let response = UrlFetchApp.fetch(url, requestOptions);
  let user = JSON.parse(response.getContentText());
  console.log(user)
}

出现的错误消息:

SyntaxError: Unexpected end of JSON input

需要修改哪部分代码才能使其正常工作?

我正在尝试 Zoom API 的更新用户设置 API。 该 API 的相关参考 URL 如下: https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/userSettingsUpdate

rest google-apps-script zoom-sdk
1个回答
0
投票

我通过修改代码解决了这个问题,如下。
错误原因是API传输的返回值返回为空。
为了解决这个问题,修改了代码,如果响应码为204,则认为API传输成功。

function test_updateUserSetting(){

  let userEmail = "Zoom User Email"
  let url = 'https://api.zoom.us/v2/users/' + userEmail + '/settings'

  const token = getToken() // get OAuth token
  Logger.log(token)


  let raw = JSON.stringify({
    "feature": {
      "webinar": true,
      "webinar_capacity": 500
    }
  });

  let requestOptions = {
    'method' :  'PATCH',
    'contentType': 'application/json',
    'headers': {'Authorization' : 'Bearer ' + token},
    'payload': raw
  };

  try{
    let response = UrlFetchApp.fetch(url, requestOptions);
    if(response.getResponseCode() === 204){
      console.log("update successed")
      return true
    }else{
      console.log("update failed")
      return false
    }
  } catch(e){
    console.log(e)
    return false
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.