Post 使用Google应用程序脚本发布QuickBooks API

Post 使用Google应用程序脚本发布QuickBooks API,post,google-apps-script,quickbooks-online,Post,Google Apps Script,Quickbooks Online,有没有人有使用谷歌应用程序脚本向QuickBooks API发送帖子的工作示例 我正在尝试使用QuickBooks API创建一个估计值,但是,尽管下面的请求正文在API资源管理器中工作,但我从Apps脚本中获得: Error: Fetch failed, code: 400, message: {"Fault":{"Error":[{"Message":"Request has invalid or unsupported property","Detail":"Property Name:U

有没有人有使用谷歌应用程序脚本向QuickBooks API发送帖子的工作示例

我正在尝试使用QuickBooks API创建一个估计值,但是,尽管下面的请求正文在API资源管理器中工作,但我从Apps脚本中获得:

Error: Fetch failed, code: 400, message: {"Fault":{"Error":[{"Message":"Request has invalid or unsupported property","Detail":"Property Name:Unrecognized token 'Line': was expecting ('true', 'false' or 'null')\n specified is unsupported or invalid","code":"2010"}],"type":"ValidationFault"},"time":"2016-08-02T09:51:28.917-07:00"} (line 195, file "Tests")
但我不明白为什么API需要布尔键而不是“Line”键

这就是我在代码中将其定义为POST有效负载的方式:

  var payload = {

    "Line": [
      {
        "Id": "3",
        "LineNum": 1,
        "Amount": 10,
        "DetailType": "SalesItemLineDetail",
        "SalesItemLineDetail": {
          "ItemRef": {
            "value": "2",
            "name": "Hours"
          },
          "UnitPrice": 10,
          "Qty": 2
        }
      },
      {
        "Amount": 10,
        "DetailType": "SubTotalLineDetail",
        "SubTotalLineDetail": {}
      }
    ],    
    "TxnTaxDetail": {
      "TotalTax": 0
    },
    "CustomerRef": {
      "value": "1",
      "name": "Mr  Blobby"
    },
    "CustomerMemo": {
      "value": "Thank you for your business and have a great day!"
    },
    "TotalAmt": 31.5,
    "ApplyTaxAfterDiscount": false,
    "PrintStatus": "NeedToPrint",
    "EmailStatus": "NotSet",
  }

  var companyId = PropertiesService
    .getUserProperties()
    .getProperty('QuickBooks.companyId')

  var url = 'https://quickbooks.api.intuit.com/v3/company/' + companyId + '/estimate'

  var options = {
    headers: {
      'Accept': 'application/json'
    },
    contentType: 'application/json',
    method: 'post',
    payload: payload,
    muteHttpExceptions: true,
  }

  var service = OAuth1_.getService();

  var response = service.fetch(url, options)  

在将整个负载传递给OAuth.fetch()调用之前,需要对其进行字符串化

所以


你能给我们看一下你打给UrlFetchApp的全部电话吗?+Dimu设计-添加了fetch
var payload = JSON.stringify({
  "Line": [
    {
      "Id": "3",
      .
      .
})