Привет всем, недавно я пытался сделать сообщение о выборке в сценарии приложения из API, называемого salesbinder (система инвентаризации), мне удалось получить и вытащить все данные инвентаря, однако я изо всех сил пытался опубликовать и добавить документ к нему и получил код ошибки ->
"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);
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я думаю, что ваше сообщение об ошибке "message":"Unauthorized" связано с "headers": {headers},. Это уже упоминалось в комментарий chrisg86.
А еще из этот документ кажется, что тело запроса требуется отправлять с 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), data и url верны. Пожалуйста, будьте осторожны с этим.
Похоже,
headersуже является объектом, так что"headers": headers,может сработать.