大家好,最近我一直在嘗試從一個名為 salesbinder(庫存系統)的 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);
}
uj5u.com熱心網友回復:
我認為您的錯誤訊息"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正確的。請注意這一點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/473294.html
標籤:javascript 谷歌应用脚本 获取 API http-status-code-401 网址提取
上一篇:使用OR陳述句按名稱獲取作業表
