我製作了一個更大(1000多行代碼)的應用程序腳本。這對我很有效。沒有其他用戶可以運行它。我希望他們也能夠運行它,我無法弄清楚爲什麼他們不能。我的程序將電子表格轉換爲Excel文件。但它只適用於一個用戶
的問題發生在這一部分:
var id = 'A_correct_ID_of_a_Google_Spreadsheet';
var SSurl = 'https://docs.google.com/feeds/';
var doc = UrlFetchApp.fetch(SSurl+'download/spreadsheets/Export?key='+id+'&exportFormat=xls',googleOAuth_('docs',SSurl)).getBlob();
var spreadsheet = DocsList.createFile(doc);
功能(和結構)在這裏公佈:other thread
function googleOAuth_(name,scope) {
var oAuthConfig = UrlFetchApp.addOAuthService(name);
oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
oAuthConfig.setConsumerKey('anonymous');
oAuthConfig.setConsumerSecret('anonymous');
return {oAuthServiceName:name, oAuthUseToken:"always"};
}
我不明白爲什麼程序只將運行以任何理由一個用戶。所有文件都在所有用戶之間共享,並且所有權已交換。
您是否試過將應用程序部署爲「任何人,甚至匿名」或「需要登錄」而不是「只是我」? – AKarthik10
此oauth 1內置支持不適用於Web應用程序。您的用戶需要從電子表格(如菜單或按鈕)運行此功能,或者您必須在腳本中開發對oauth 2的支持(它不是內置的)。這裏有一些代碼示例。 –
此腳本從菜單按鈕的Speadsheet(Google表單 - 答案單)運行 –