Google apps script 气体应用程序脚本使用令牌执行web应用程序-403禁止
我有两个脚本部署为web应用程序。Google apps script 气体应用程序脚本使用令牌执行web应用程序-403禁止,google-apps-script,google-cloud-platform,Google Apps Script,Google Cloud Platform,我有两个脚本部署为web应用程序。 第一个有函数doGet,它使用函数doPost创建对第二个应用程序的post请求 我在调用第一个doGet函数时被禁止 <HTML> <HEAD> <TITLE>Forbidden</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF" TEXT="#000000"> <H1>Forbidden</H1> <H2>Error 40
第一个有函数doGet,它使用函数doPost创建对第二个应用程序的post请求
我在调用第一个doGet函数时被禁止
<HTML>
<HEAD>
<TITLE>Forbidden</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Forbidden</H1>
<H2>Error 403</H2>
</BODY>
</HTML>
第二个应用程序:-doPost函数
-以以下方式执行应用程序:Me
-谁有权访问应用程序:任何人
function doGet(e) {
var url = #url_to_second_app
var headers = {
"Authorization" : "Bearer " + ScriptApp.getOAuthToken()
};
var params = {
"method":"post",
"headers": headers,
"muteHttpExceptions": true
};
var response;
try{
response = UrlFetchApp.fetch(url,params);
}catch(err){
response = err;
}
Logger.log(response);
return ContentService.createTextOutput(response);
}
function doPost(e) {
return ContentService.createTextOutput("hello world!");
谁有权访问该应用程序:任何人
要匿名访问第二个应用程序,应将第二个脚本发布为
任何人即使是匿名的
或者,第二个应用程序的驱动器应与第一个应用程序的脚本共享
谁有权访问该应用程序:任何人
要匿名访问第二个应用程序,应将第二个脚本发布为
任何人即使是匿名的
或者,第二个应用程序的驱动器应该与第一个应用程序的脚本共享。我的理解是doPost和doGet连接到url的端点,您可以使用
ScriptApp.getService().getUrl()
,因此如果您在一个Web应用程序上有两个表单,其中一个有method=“get”,那么它将使用doGet()如果另一个有method=“POST”,那么它将使用doPost()。如果没有doPost(),则可以同时使用doGet。但是,您并不打算从脚本内部调用doPost()或doGet()方法。当将muteHttpExceptions
转换为false
时,您会收到什么错误消息?我的理解是,doPost和doGet连接到您通过ScriptApp.getService().getUrl()获得的url的端点
因此,如果一个webapp上有两个表单,其中一个有method=“GET”,那么它将使用doGet(),如果另一个有method=“POST”,那么它将使用doPost()。如果没有doPost(),则可以同时使用doGet。但它并不是为了让您调用doPost()或doGet()从脚本内部的方法当将muteHttpExceptions
转换为false
时,您会收到什么错误消息?两个脚本位于相同的位置drive@Szymon然后,您需要在授权头中发送承载令牌,以确定是您进行提取调用。正如您所看到的示例,承载令牌附在request(来自doGet的请求)@Szymon 1上。这两个脚本是否作为同一个Google帐户运行?2.能否尝试将drive.readOnly
的范围扩大到drive
并重新部署新版本?3.如果这不起作用,请将这两个应用程序从v8降级到rhino engine,然后重新部署这两个应用程序?仍然是相同的错误。当我将对第二个应用程序的访问权限从“任何人”更改为“任何人甚至匿名”,并发送了一个带有授权令牌的请求时,我得到了403,但没有通过此标头请求,这两个脚本位于同一位置drive@Szymon然后,您需要在授权头中发送承载令牌,以确定是您进行提取调用。正如您所看到的示例,承载令牌附在request(来自doGet的请求)@Szymon 1上。这两个脚本是否作为同一个Google帐户运行?2.能否尝试将drive.readOnly
的范围扩大到drive
并重新部署新版本?3.如果这不起作用,请将这两个应用程序从v8降级到rhino engine,然后重新部署这两个应用程序?仍然是相同的错误。当我将第二个应用程序的访问权限从“任何人”更改为“任何人甚至匿名”,并发送了一个带有授权令牌的请求时,我得到了403,但没有通过此标头请求