2012-12-29 132 views
4

我一直在這裏圍繞着圈子,完全糊塗了我自己。我需要一些幫助。從Google應用程序腳本應用程序調用Google Drive SDK應用程序

我是(試圖)爲概念很簡單的客戶編寫應用程序。他想要一個帶有按鈕的Google寫文檔。谷歌驅動器帳戶有幾個文件夾,每個文件夾與幾個人共享。當他將一個新文件放入其中一個文件夾中時,他希望能夠打開該寫入文件,該文件是他的電子郵件的模板。他點擊該按鈕,系統會調用Google Drive SDK https://developers.google.com/drive/manage-changes中的更改服務,獲取自上次檢查後添加的文件列表,然後提取該文件與之共享的人員列表,以及使用寫入文件作爲模板,向該人員發送一封電子郵件,說明他們的文件已準備就緒。

SO,很簡單吧?

我首先查看了Google App Script API中內置的函數。我在DocsList類中找到了此方法https://developers.google.com/apps-script/class_docslist#find。問題是查詢的描述簡單地說「查詢字符串」。所以起初我嘗試了Drive SDK查詢參數,它們是

var files = DocsList.find("modifiedDate > 2012-12-20T12:00:00-08:00."); 

它沒有工作。這使我相信這是一個簡單的全文搜索內容。這還不夠好。

這導致我嘗試從App Script應用程序中調用Drive SDK方法。太好了,我們需要OLap 2認證。很容易。在腳本引用中找到了對象並打到了我的牆上。

客戶端ID和客戶端密鑰。

您會看到,當我創建這個服務帳戶時,應用程序腳本中的olap控件不知道如何處理加密的json並將它來回傳遞。然後,當我嘗試創建並使用安裝的應用程序密鑰時,由於控件再次出現身份驗證錯誤,不知道如何處理工作流。最後,當我嘗試創建一個Web應用程序密鑰時,我不能因爲我沒有站點主機名或重定向URI。而且我不能使用應用程序的關鍵能力,因爲我需要處理文件OLap 2。

我用匿名olap一段時間,但每天試圖找出代碼的努力達到匿名呼叫的限制,這不會工作,因爲傢伙將要推這個按鈕不斷通過一天。

我一直在桌子上敲了一下頭,現在已經5個小時了。我需要一些幫助,任何人都可以給我一個方向去?

PS,是的,我知道我可以使用數據庫控件並將整個文件列表加載到內存中,並將其與數據庫中的文件列表進行比較。問題在於,我們正在談論數以萬計的文件。餿主意。

+3

我不相信。我只是想出了它。我創建了一個Web應用程序客戶端代碼,並將https://google.com作爲JavaScript創建者,並將重定向留空並且工作。去搞清楚。 – scphantm

+0

工作的搜索字符串是'var files = DocsList.find('after:2013-04-06T01:14');' –

+0

當我生成一個「Web應用程序的客戶端ID」,然後嘗試進入谷歌。com作爲「授權JavaScript起源」,答案是:PostMessage Origin「google.com」無效。 – koma

回答

0

我不會再使用DocsList - DriveApp應該是more reliable replacement。其中一些命令已經更改,因此不用查找,請使用searchFiles。這應該更有效地工作(他們甚至使用像你這樣的查詢作爲例子)。

相關問題