来自谷歌脚本的“登录信息不允许”错误

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

我一直在尝试使用应用程序脚本中的 UrlFetchApp 从名为 Salesbinders 的库存系统 API 中获取库存信息,由于某种原因,我不断收到登录信息不允许的错误,我尝试了在网上找到的不同方法,但没有一个有效,我也尝试将其放在邮递员上并且它有效,所以我假设我提供的详细信息应该是正确的。 以下是 salesbindner API 文档:https://www.salesbinder.com/api/

这是我的代码

function fetching() {
  
  var USERNAME ='{API KEY}'
  var PASSWORD = '{x}'

  var url ='https://{API KEY}:x@{subdomain}.salesbinder.com/api/2.0/items.json'

  var headers = {
    "Authorization" : "Basic " + Utilities.base64Encode(USERNAME+ ':' + PASSWORD)
  };



let response = UrlFetchApp.fetch(url,headers)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Logger.log(response.getContentText());
}

如果有人能提供帮助,我将非常感激,整个周末我都被这个问题困扰了

google-apps-script basic-authentication urlfetch
1个回答
0
投票

在您的脚本中,

headers
未作为标头包含在请求中。如果您的网址
USERNAME
PASSWORD
正确,我认为这可能是您出现问题的原因。

而且,在 UrlFetchApp 中,不使用

then
。当这些点反映在你的脚本中时,就会变成如下所示。

修改后的脚本:

function fetching() {
  var USERNAME = '{API KEY}';
  var PASSWORD = '{x}';
  var url = 'https://{API KEY}:x@{subdomain}.salesbinder.com/api/2.0/items.json';
  var headers = {
    "Authorization": "Basic " + Utilities.base64Encode(USERNAME + ':' + PASSWORD)
  };
  let response = UrlFetchApp.fetch(url, { headers });
  Logger.log(response.getContentText());
}

注:

  • 此修改假设您的 URL、
    USERNAME
    PASSWORD
    是正确的。如果出现错误,请再次确认。

参考:

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