参数类型与UrlFetchApp有效负载不匹配

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

我收到错误:尝试使用Google Apps脚本进行POST请求时,传递的参数类型不匹配:“字段”。

我已经尝试在有效负载上添加JSON.stringify(requestBody),但也没有用。我在哪里错了?

 var fields = ["id","name","group_name"]

  var requestBody = {
    "project_id": "3259344",
    "fields": fields,
    "limit": "30"
} 

  var options =
      {
           'method'  : 'POST',
           'headers' : {
           'User-Id' : email,
           'Authorization' : 'Bearer '+ apiKey
           }, 
          'payload' : requestBody
      };


var response = UrlFetchApp.fetch("https://api.test.com/v2/json/get/keywords", options);

javascript google-apps-script google-sheets payload urlfetch
1个回答
2
投票

我不确定您要使用的API的详细规范。那么从您问题中的错误消息来看,以下三种修改模式如何?

模式1:

修改的脚本:

var fields = ["id","name","group_name"];
var requestBody = {
  "project_id": "3259344",
  "fields": fields,
  "limit": "30"
};
var options = {
  'method'  : 'POST',
  'headers' : {
    'User-Id' : email,
    'Authorization' : 'Bearer ' + apiKey
  }, 
  'payload' : JSON.stringify(requestBody),  // Modified
  'contentType': 'application/json'  // Added
};
var response = UrlFetchApp.fetch("https://api.test.com/v2/json/get/keywords", options);

模式2:

修改的脚本:

var fields = "id,name,group_name";  // Modified
var requestBody = {
  "project_id": "3259344",
  "fields": fields,
  "limit": "30"
};
var options = {
  'method'  : 'POST',
  'headers' : {
    'User-Id' : email,
    'Authorization' : 'Bearer ' + apiKey
  }, 
  'payload' : JSON.stringify(requestBody),  // Modified
  'contentType': 'application/json'  // Added
};
var response = UrlFetchApp.fetch("https://api.test.com/v2/json/get/keywords", options);

模式3:

修改的脚本:

var fields = "id,name,group_name";  // Modified
var requestBody = {
  "project_id": "3259344",
  "fields": fields,
  "limit": "30"
};
var options = {
  'method'  : 'POST',
  'headers' : {
    'User-Id' : email,
    'Authorization' : 'Bearer ' + apiKey
  }, 
  'payload' : requestBody
};
var response = UrlFetchApp.fetch("https://api.test.com/v2/json/get/keywords", options);

参考:

© www.soinside.com 2019 - 2024. All rights reserved.