UPS OAuth API不断出现“不支持的授权类型”错误

ef1yzkbh  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(129)

当我尝试运行UPS OAuth API时,我一直收到“Unsupported grant type:“错误。在他们的文档中,它使用“Try it”功能工作,但在我的实际代码中,它不工作,我基本上复制并粘贴了他们在文档中提供的代码。
下面是我的代码:

const formData = {
    grant_type: 'client_credentials'
  };

  const url = 'https://wwwcie.ups.com/security/v1/oauth/token';
  const clientID = {clientID};
  const clientSecret = {clientSecret};
  const auth = 'Basic ' + Utilities.base64Encode(`${clientID}:${clientSecret}`);

  let options = {
    method: 'POST',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      'Authorization': auth
    },
    payload: JSON.stringify(formData)
  }

字符串
这里是错误消息

{ [Exception: Request failed for https://wwwcie.ups.com returned code 400. Truncated server response: {"response":{"errors":[{"code":"10400","message":"Unsupported grant type : "}]}} (use muteHttpExceptions option to examine full response)] name: 'Exception' }


有谁能帮我弄清楚这是怎么回事吗?文档说“client_credentials”是唯一有效的值,所以我真的不知道如何继续。

jfgube3f

jfgube3f1#

从你的演示脚本中,如果你想使用“创建令牌”,那么下面的修改如何?当我看到官方文档时,示例curl命令如下。

curl -i -X POST \
  -u <username>:<password> \
  https://wwwcie.ups.com/security/v1/oauth/token \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'x-merchant-id: string' \
  -d grant_type=client_credentials

字符串
转换为Google Apps脚本后,它将变为如下所示。

示例脚本:

请设置您的usernamepassword的值,虽然我不清楚您的实际情况,但您的显示脚本中的clientIDclientSecret的值分别是usernamepassword吗?

function myFunction() {
  const username = "username"; // Please set your value.
  const password = "password"; // Please set your value.

  const url = "https://wwwcie.ups.com/security/v1/oauth/token";
  const auth = 'Basic ' + Utilities.base64Encode(`${username}:${password}`);
  const options = {
    headers: { "Authorization": auth, "x-merchant-id": "string" },
    payload: { grant_type: 'client_credentials' }
  }
  const res = UrlFetchApp.fetch(url, options);
  console.log(res.getContentText());
}

注意:

  • 我认为这个Google Apps脚本的请求与上面的curl命令相同。但是,如果发生错误,请再次确认您的值。

参考资料:

  • 创建UPS API的令牌
  • fetch(url,params)

相关问题