2012-09-25 32 views
0

我在获取文档的内容时遇到问题。我能够获取文档ID,但无法获取文档的文本。 我使用下面的代码是:如何在Google应用中获取Google文档的内容?

function getDocuments(user){ 
    var scope = 'https://docs.google.com/feeds/'; 
    //oAuth 
    user="email-id" 
    var fetchArgs = googleOAuth_('docs', scope); 
    var url = scope + user+'/private/full?v=3&alt=json'; 
    var urlFetch = UrlFetchApp.fetch(url, fetchArgs); 
    var json=Utilities.jsonParse(urlFetch.getContentText()) 
    var entry = json.feed.entry; 
    var docs = []; 
    for(var i in entry){ 
    var tempDoc = {}; 
    for(var j in entry[i]){ 

     tempDoc.id = entry[i].id.$t.split('%3A')[1]; 
    } 
    docs.push(tempDoc); 
    //Logger.log(docs[i]) 
    } 


    var url='https://docs.google.com/feeds/download/documents/Export?docID=?' 

    var data=UrlFetchApp.fetch(url,fetchArgs).getAs('text/html').getDataAsString() 
    MailApp.sendEmail("email","","",{htmlBody:data}) 
} 

//-------------------------------------------------------------------------------------- 
//Google oAuth 
//Used by getDocuments(user) 
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("consumerkey"); 
    oAuthConfig.setConsumerSecret(consumersecret); 
    return {oAuthServiceName:name, oAuthUseToken:"always",method:"GET"}; 
} 

它返回的文档HTML格式,但不能返回的文档内容。 请尽快与我分享任何建议..

+0

要与文档进行何种操作内容?显示在用户界面?把它作为邮件发送?还有:你想要完整的格式还是只有文本? –

+0

我想将它存储在谷歌云存储上。并希望完整格式的文件。 –

回答

2

,如果你想在文档成为邮件的HTML身体,你可以使用此代码:

var id = 'the ID of your document' 
    var bodytext = DocumentApp.openById(id).getText();//the text content of your doc (optional) 
    var url = 'https://docs.google.com/feeds/'; 
    var doc = UrlFetchApp.fetch(url+'download/documents/Export?exportFormat=html&format=html&id='+id, 
    googleOAuth_('docs',url)).getContentText(); 


    MailApp.sendEmail(destination email, subject, bodytext, {htmlBody:doc}); 

和OAuth的功能:

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"}; 
} 
0

到目前为止我不知道任何可以获取文件内容的功能,可以参考文档中的文件共享链接。

我希望能帮到你!

相关问题