2011-09-27 126 views
2

m in the process of creating a custom timesheet using Google Docs and Google Apps Script. One of the requirements is to save the timsheet as a PDF when the user submits the timesheet. Here正是我目前有:谷歌Apps腳本UrlFetchApp異常

function createPdf(){ 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 

    var oauthConfig = UrlFetchApp.addOAuthService("google"); 
    oauthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken"); 
    oauthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope=https://spreadsheets.google.com/feeds/"); 
    oauthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken"); 
    oauthConfig.setConsumerKey("anonymous"); 
    oauthConfig.setConsumerSecret("anonymous"); 

    var url = "https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=" 
     + ss.getId() + "&gid=0&portrait=true" +"&exportFormat=pdf"; 

    var requestData = { 
    "oAuthServiceName": "google", 
    "oAuthUseToken": "always" 
    }; 

    var result = UrlFetchApp.fetch(url, requestData); 
    var content = result.getBlob(); 
    var file = DocsList.createFile(content); 

    return file; 

} 

在調試腳本時,我收到以下錯誤:

Unexpected exception upon serializing continuation

任何幫助,將不勝感激。

回答

3

一些進一步的挖掘後,我發現這個解決方案:

function createPdf(){ 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var pdf = ss.getAs("application/pdf"); 
    var file = DocsList.createFile(pdf); 
    file.rename("Test"); 

    return file; 

}