大家好,最近我一直在try 在应用程序脚本中执行fetch post,从一个名为salesbinder(inventory system)的api中,我成功地获取并拉下了所有库存数据,但我一直在努力发布和添加文档,并收到一个错误代码->

"Truncated server response: {"message":"Unauthorized","url":"\/api\/2.0\/documents.json","code":401}"

由于我使用的是相同的用户名和密码,我可以保证认证的详细信息是正确的,如果有人能帮我解决这个问题,我将不胜感激.

下面是api文档(https://www.salesbinder.com/api/documents/add/)和我一直在使用的代码.

  function posting(){
  var Username = "{API KEY}"
  var Password = "x"
  var headers = {
    "Authorization" : "Basic " + Utilities.base64Encode(Username+ ':' + Password)
  };

  var url ='{API URL}'

  var data ={
    "document":{ 
      "customer_id": 'a93a9e9a-5837-4ec5-9dc7-47cc8cfd84e4',
      "issue_date":"2022-05-09",
      "context_id":5,
      "document_items":[  
          {  
              "quantity":2,
              "price":134,
              "item_id":"   b04993fe-7b17-42a1-b5e5-2d34890794c9"
          }
        ]
      },

    };

  var option = {
    "method": "post",
    'payload' : data,
    "headers": {headers},
  };


  UrlFetchApp.fetch(url, option);
 

}

推荐答案

我想你的"message":"Unauthorized"错误信息是"headers": {headers},造成的.这已经在chrisg86's comment篇文章中提到过.

而且,从this document开始,请求主体似乎需要与Content-Type: application/json一起发送.

发件人:

var option = {
  "method": "post",
  'payload' : data,
  "headers": {headers},
};

致:

var option = {
  "method": "post",
  "payload": JSON.stringify(data),
  headers, // or "headers": headers
  "contentType": "application/json"
};

注:

  • 在此修改中,假设"Basic " + Utilities.base64Encode(Username+ ':' + Password)dataurl的值是正确的.请小心这个.

Javascript相关问答推荐

从mat—country—select获取整个Country数组

微软Edge编辑和重新发送未显示""

在grafana情节,避免冲突的情节和传说

从Node JS将对象数组中的数据插入Postgres表

我怎么才能得到Kotlin的密文?

优化Google Sheet脚本以将下拉菜单和公式添加到多行

如何在使用rhandsontable生成表时扩展数字输入验证?

如何将innerHTML字符串修剪为其中的特定元素?

Web Crypto API解密失败,RSA-OAEP

如果一个字符串前面有点、空格或无字符串,后面有空格、连字符或无字符串,则匹配正则表达式

未捕获的运行时错误:调度程序为空

react 路由如何使用从加载器返回的数据

KeyboardEvent:检测到键具有打印的表示形式

JSON Web令牌(JWT)错误:RSA密钥对的签名无效

将Windows XP转换为原始数据以在html前端中显示

MUI-TABLE:MUI表组件中交替行的不同 colored颜色 不起作用

在不使用AJAX的情况下将JavaScript数组值传递给Laravel控制器?

如何将缓冲区数组转换回音频

按下键盘上的空格键后,单词就会变色.我想在最后一封信之后立即给它们涂上 colored颜色

当我单击一个按钮时,所有按钮都会自动单击