10

我覺得這裏總是有noob的貼子。我非常瞭解CSS,HTML和XML,但一直避免使用JS。我知道JavaScript很少,最近開始了一個Lynda.com課程來趕上。對不起,我的無知。因此,我非常努力學習Google Apps腳本。很明顯,我需要學習JS,然後才能理解其中的任何內容。腳本自動製作Google文檔的副本進行編輯

我工作的學校(5000名學生)已經建立了在線課程。我以數千個Google文檔工作表的形式創建了課程表。這些工作表在各種網站上鍊接。

我們所面臨的問題是,當學生打開的文件,他們必須讓他們的副本,纔可以對其進行編輯(當然,我不希望他們能夠編輯原件)。這對於在平板電腦上使用移動瀏覽器的學生來說真的很糟糕,因爲在移動設備上使用桌面用戶界面時,在Google文檔中製作副本效果並不理想。

我知道這種事情可以用腳本自動化。我看了here,低,看,它的作品!因爲我一直在尋找這樣的功能三年,所以我很開心地嘲笑我的褲子。 (是的,我知道這很難過)。

所以,我問的是,任何人都願意幫助noobob搞清楚如何調整這段代碼,讓學生點擊網站上的一個按鈕課程,它會自動打開並打開一份工作表副本在新標籤中?

/** 
* Copy an existing file. 
* 
* @param {String} originFileId ID of the origin file to copy. 
* @param {String} copyTitle Title of the copy. 
*/ 
function copyFile(originFileId, copyTitle) { 
    var body = {'title': copyTitle}; 
    var request = gapi.client.drive.files.copy({ 
    'fileId': originFileId, 
    'resource': body 
    }); 
    request.execute(function(resp) { 
    console.log('Copy ID: ' + resp.id); 
    }); 
} 

支出昨天一整天學習JavaScript,我還有很長的路要走。不知道我需要多長時間才能自行解決這個問題。

+1

你準確的問題是什麼? – PeeHaa

+0

基本上,需要通過點擊按鈕執行此功能並獲取文檔以在新選項卡中打開。尋找適合代碼的人。 – user1798533

+0

這不是Apps腳本代碼。你有沒有試過去學習它? (在請求某人爲你寫信之前) –

回答

12

您當然可以使用Apps腳本來做到這一點。只需要幾行。事實上,你可以使用我在下面寫的版本。

這裏是我會怎麼做 -

  1. 確保您原始文件至少閱讀將要訪問它的鄉親啓用。

    Access rights

  2. 抓住FILEID從URL -

    enter image description here

  3. 寫Apps腳本在web app用下面的代碼 -

    function doGet(e) { 
        //file has to be at least readable by the person running the script 
        var fileId = e.parameters.fileId; 
        if(!fileId){ 
        //have a default fileId for testing. 
        fileId = '1K7OA1lnzphJRuJ7ZjCfLu83MSwOXoEKWY6BuqYitTQQ'; 
        } 
        var newUrl = DocsList.getFileById(fileId).makeCopy('File copied to my drive').getUrl(); 
        return HtmlService.createHtmlOutput('<h1><a href="'+newUrl+'">Open Document</a></h1>'); 
    } 
    
  4. 部署到運行作爲訪問該應用的人員。

    deploy settings

    記住

一個關鍵的一點是,通過Google Apps腳本建立一個web應用程序不能自動強行打開一個新的窗口。相反,我們可以在編輯模式下顯示可點擊到文檔中的鏈接。

你可以看到在行動在這裏(會創建一些虛擬的文件) -

https://script.google.com/macros/s/AKfycbyvxkYqgPQEb3ICieywqWrQ2-2KWb-V0MghR2xayQyExFgVT2h3/exec?fileId=0AkJNj_IM2wiPdGhsNEJzZ2RtZU9NaHc4QXdvbHhSM0E

您可以通過將在自己的fileId進行測試。

4

由於DocsList已被棄用,目前你可以用下面的代碼文件的副本:

File file=DriveApp.getFileById(fileId).makeCopy(fileName, folder); 

其中fileId可以由阿倫Nagarajan在answer解釋得到。

相關問題