Google apps script OAuth是否可以从站点上的Google应用程序脚本小工具中实现?
我在使用oAuth的电子表格中开发了一个google应用程序脚本。 我现在将相同的脚本复制到一个在站点上运行的小工具中。当我想要运行使用oauth的函数时,我得到以下错误: 序列化继续时出现意外异常 当我在站点上运行实际的小工具或从脚本编辑器运行函数时,都会发生这种情况。当从电子表格中的脚本编辑器调用时,完全相同的代码可以工作。 我是做错了什么,还是在使用站点小工具时,无法将oAuth与UrlFetchApp.fetch一起使用 谢谢 一月 下面是我要做的一些示例代码,您需要包含来自GoogleAPI控制台的真实api机密来测试它Google apps script OAuth是否可以从站点上的Google应用程序脚本小工具中实现?,google-apps-script,Google Apps Script,我在使用oAuth的电子表格中开发了一个google应用程序脚本。 我现在将相同的脚本复制到一个在站点上运行的小工具中。当我想要运行使用oauth的函数时,我得到以下错误: 序列化继续时出现意外异常 当我在站点上运行实际的小工具或从脚本编辑器运行函数时,都会发生这种情况。当从电子表格中的脚本编辑器调用时,完全相同的代码可以工作。 我是做错了什么,还是在使用站点小工具时,无法将oAuth与UrlFetchApp.fetch一起使用 谢谢 一月 下面是我要做的一些示例代码,您需要包含来自Google
function CalendarApiBug( ) {
var oAuthConfig = UrlFetchApp.addOAuthService('agenda scheduler');
oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/"+
"OAuthGetRequestToken?scope=https://www.googleapis.com/auth/calendar");
oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
oAuthConfig.setConsumerKey('replacemewithsomethingreal');
oAuthConfig.setConsumerSecret('replacemewithsomethingreal');
this.baseUrl = 'https://www.googleapis.com/calendar/v3/';
this.calendarsList = null;
this.getBaseUrl = function() {
return this.baseUrl;
} //CalendarApiBug.getBaseUrl
this.getFetchArgs = function() {
return {oAuthServiceName:'agenda scheduler', oAuthUseToken:"always"};
} //CalendarApiBug.getFetchArgs
this.getCalendarList = function(refresh){
if (refresh != true && this.calendarsList != null )
return this.calendarsList;
var fetchArgs = this.getFetchArgs();
fetchArgs.method = 'get';
var url = this.baseUrl + 'users/me/calendarList';
this.calendarsList = Utilities.jsonParse(UrlFetchApp.fetch(url, fetchArgs).getContentText());
return this.calendarsList;
} //CalendarApiBug.getCalendarList
}
function test(){
var api = new CalendarApiBug();
Logger.log(api.getCalendarList(false));
}
oAuth approval对话框仅在从脚本管理器内部运行代码时可见。为了将应用程序脚本代码发布到站点,您需要将该版本的脚本作为服务发布。打开该脚本的代码编辑器,确保可以首先使用脚本编辑器运行函数。这将验证您的oAuth批准是否已存储。只有在脚本管理器中运行代码时,oAuth批准对话框才可见。为了将应用程序脚本代码发布到站点,您需要将该版本的脚本作为服务发布。打开该脚本的代码编辑器,确保可以首先使用脚本编辑器运行函数。这将验证您的oAuth批准是否已存储。为什么在日历服务的Google应用程序脚本中使用oAuth 为什么在日历服务的谷歌应用程序脚本中使用Oauth 因为通过oauth提供的日历api比内置api允许更多,比如更改日历的ACL。因为通过oauth提供的日历api比内置api允许更多,比如更改日历的ACL。我尝试先在编辑器中运行函数,但出现了错误。我想这个脚本已经发布了,因为这个小工具的UI显示在我的网站上。只要我不调用oauth代码,它就可以工作。我尝试先在编辑器中运行函数,但它给出了错误。我想这个脚本已经发布了,因为这个小工具的UI显示在我的网站上。只要我不调用oauth代码,它就可以工作。