我開發了一個名為“sudofunctions”的 Apps 腳本,它使用提升的帳戶執行敏感命令。它與整個域共享并作為作者執行。
然后我開發了“clientFunctions”,它可以由任何經過身份驗證的用戶運行,并且需要在 sudofunctions 中呼叫函式。
sudofunctions 目前有 2 個功能
function test()
{
createUser("[email protected]", "Full name")
}
function createUser(email, name)
{
console.log("Checkpoint Alpha")
}
clientFunctions 然后嘗試呼叫這兩個函式,呼叫 test() 效果很好
var token = ScriptApp.getOAuthToken();
var options = {
"method" : "POST",
"headers": {"Authorization": "Bearer " token },
"payload" : {
"function": "test",
"devMode": "true"
},
muteHttpExceptions:true
}
var rest = UrlFetchApp.fetch("https://script.googleapis.com/v1/scripts/ABCXYZ:run", options)
但是,呼叫 createUser 失敗
var token = ScriptApp.getOAuthToken();
var options = {
"method" : "POST",
"headers": {"Authorization": "Bearer " token },
"payload" : {
"function": "createUser",
"parameters":["[email protected]", "John Doe"],
"devMode": "true"
},
muteHttpExceptions:true
}
var rest = UrlFetchApp.fetch("https://script.googleapis.com/v1/scripts/ABCXYZ:run", options)
隨著錯誤:
{
"error": {
"code": 400,
"message": "Invalid JSON payload received. Unknown name \"parameters\": Cannot bind query parameter. 'parameters' is a message type. Parameters can only be bound to primitive types.",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"description": "Invalid JSON payload received. Unknown name \"parameters\": Cannot bind query parameter. 'parameters' is a message type. Parameters can only be bound to primitive types."
}
]
}
]
}
}
根據檔案,它應該可以作業。
https://developers.google.com/apps-script/api/reference/rest/v1/scripts/run#request-body
我哪里出錯了?
謝謝您的幫助。
uj5u.com熱心網友回復:
在您的腳本中,從您的錯誤訊息中,以下修改如何?
從:
var options = {
"method" : "POST",
"headers": {"Authorization": "Bearer " token },
"payload" : {
"function": "createUser",
"parameters":["[email protected]", "John Doe"],
"devMode": "true"
},
muteHttpExceptions:true
}
到:
var options = {
"method": "POST",
"headers": { "Authorization": "Bearer " token },
"contentType": "application/json",
"payload": JSON.stringify({
"function": "createUser",
"parameters": ["[email protected]", "John Doe"],
"devMode": "true"
}),
"muteHttpExceptions": true
}
參考:
- 方法:scripts.run
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/327415.html
標籤:谷歌应用程序脚本
上一篇:檔案選擇器邊欄通信錯誤
下一篇:檢查幻燈片文本框的字串相等性
