【发布时间】:2021-03-11 17:14:16
【问题描述】:
我使用应用程序脚本编写了一个测试网络应用程序。我将其部署为以“用户访问网络应用程序”的身份执行,并将访问权限设置为“拥有 Google 帐户的任何人”。然后,我尝试从另一个充当客户端的脚本调用 Web 应用程序功能。我在登录我的谷歌帐户时完成了所有这些操作,网络应用程序和客户端都在同一个浏览器窗口中(在不同的选项卡中)。但我总是收到 401 错误。然后我尝试将一些 oauthScopes 添加到客户端脚本的 appsscript.json 文件中,但这没有帮助。任何解决此问题的帮助将不胜感激。
网页应用代码:
function doPost(e) {
if(typeof e !== 'undefined') {
let par = e.parameter;
let retval = par.x*3;
let retobj = {"retval":retval};
return ContentService.createTextOutput(JSON.stringify(retobj));
}
}
客户端代码:
function callWebApp(x) {
Logger.log("starting call webapp");
var payload = {
"info" : "some text",
"x" : 3,
"type" : "post",
};
var options = {
"method" : "POST",
"payload" : payload,
"followRedirects" : true,
"muteHttpExceptions": true
};
var result = UrlFetchApp.fetch(urlString, options);
Logger.log(result.getResponseCode());
if (result.getResponseCode() == 200) {
Logger.log('got response');
var params = JSON.parse(result.getContentText());
Logger.log(params.retval);
}
return 1;
}
客户端的appscript.json:
{
"timeZone": "America/New_York",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"oauthScopes": [
"https://www.googleapis.com/auth/script.deployments",
"https://www.googleapis.com/auth/script.deployments.readonly",
"https://www.googleapis.com/auth/script.external_request",
"https://www.googleapis.com/auth/script.projects",
"https://www.googleapis.com/auth/script.processes",
"https://www.googleapis.com/auth/script.projects.readonly"
]
}
执行日志: 7:47:30 PM 通知执行开始 7:47:30 PM 信息开始呼叫 webapp 下午 7:47:30 信息 401.0 7:47:30 PM 通知执行完成
【问题讨论】: