我在使用oAuth的電子表格中開發了一個google apps腳本。 我現在將相同的腳本複製到在網站上運行的小工具。當我想要運行使用OAuth我得到以下錯誤的功能:在序列化的延續網站上的Google Apps腳本小工具是否可以使用OAuth?
這種情況
意外的異常都在我的網站上運行實際的小工具,或者當我從腳本運行功能編輯。從電子表格中的腳本編輯器調用完全相同的代碼。 我做錯了什麼或者在使用網站小工具時,是否無法在UrlFetchApp.fetch中使用oAuth?
感謝,
月
這裏是我想要做的,你需要包括來自谷歌API控制檯中真正的API祕密測試一些示例代碼。
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代碼,它就可以工作。 – jankeir