我是 Google 檔案應用腳本的新手。
實際上,我正在尋找通過 API 呼叫 AppScript 函式從第三方應用程式將文本插入檔案,但 getCursor 函式變為空,因此我無法獲取游標位置。下面是我的腳本:
DocumentApp.getActiveDocument().getCursor().insertText("Test...")
回復:
{ "done": true, "error": { "message": "ScriptError", "code": 3, "details": [ { "errorType": "ScriptError", "errorMessage": "TypeError: Cannot read property 'insertText' of null", "@type": "type.googleapis.com/google.apps.script.v1.ExecutionError", "scriptStackTraceElements": [ { "function": "myFuction", "lineNumber": 31 } ] } ] } }
有沒有辦法做到這一點?有沒有可以呼叫 Appscript 函式的 JS 庫?
謝謝 - 薩希
uj5u.com熱心網友回復:
情況:
如果我正確理解您的情況:
- 您已經部署了一個系結到 Google Docs的腳本。
- 您正在使用第 3 方呼叫此部署。
問題:
這里的問題是您無法在此背景關系中獲取有關用戶游標的資訊(因此無法使用getCursor )。這是因為沒有與此腳本執行關聯的客戶端。即使用戶在瀏覽器視窗上打開了檔案,腳本執行也不“知道”這一點,這兩種情況彼此無關。
例如,考慮在第二個選項卡上打開檔案并將游標放在與第一個選項卡不同的位置的可能性。應該getCursor指向哪個位置?它們都沒有,因為沒有從那里呼叫腳本。
現在,如果您從打開的選項卡中呼叫您的函式,那么您可以獲得游標資訊。例如,您可以有一個自定義選單呼叫它。或者,也許您可??以將其用作附加組件。或者您可以Extensions > Apps Script直接從腳本編輯器中單擊并呼叫該函式。
當從第三方呼叫它時,即使請求是由具有打開檔案的瀏覽器選項卡的同一用戶驗證的,您也無法獲取該選項卡的游標資訊。該腳本可以獲取活動檔案,因為它已系結到它,但沒有與打開的選項卡特別相關的其他資料(因此getSelection之類的東西也將無法訪問)。
解決方法:
因此,如果要向檔案添加文本,則必須使用不使用與打開的選項卡特別相關的資料的方法。例如,您可以使用Body.appendParagraph將文本附加到檔案的末尾,或者使用findText首先在檔案中查找某個單詞并將文本附加到那里。也就是說,您必須使用與檔案相關的方法,而不是與在瀏覽器中打開的檔案相關的方法。
另一種選擇是不使用第 3 方呼叫它,而是使用它作為附加組件,或者你有什么。但這取決于您專案的具體情況和要求。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/520060.html
