2016-09-19 36 views
3

如在此document中提到的有關存儲應用程序數據的信息,我希望通過Google應用程序腳本附加服務器代碼使其成爲可能。將文件寫入應用程序數據文件夾從Google應用程序腳本服務器代碼服務器代碼

我能夠通過這種方式在我的谷歌根驅動器文件夾中創建一個任意文件。

DriveApp.createFile('Test', 'Test content'); 

但無法弄清楚如何創建成(隱藏)應用程序數據文件夾:

var dir = DriveApp.getFolderById("appDataFolder"); 
var file = dir.createFile('Test', 'Test content'); 

接收「拒絕訪問」運行它。

我想我必須將這個範圍應用到我的應用程序,但不知道如何將它應用於谷歌應用程序腳本。

範圍:https://www.googleapis.com/auth/drive.appdata

驅動器API是公激活。

Advanced google services

這將是很好,如果我可以更新這些示波器(文件>項目屬性菜單):

Project properties scopes

任何幫助,將如此讚賞。

+0

我也嘗試直接使用Drive API調用,而不是本地[描述](https://developers.google.com/apps-script/advanced/drive),但最終得到邏輯消息「The當前作用域不允許使用appdata文件夾「 – darul75

+0

我剛剛添加了一個幫助函數的功能請求,該功能可以做到這一點,並且允許腳本編輯器更理性地管理權限,如果您同意,請星/投票: https://code.google.com/p/google-apps-script-issues/issues/detail?id=6592 –

+0

你是否設法解決這個問題?我正在尋找相同的... – ZorgoZ

回答

-1

您已啓用Drive v2 API並使用用於Drive v3的別名appDataFolder。這可能會導致你遇到的問題。

如果您將使用v2,請嘗試將別名更改爲appfolder。希望這對你有幫助。

快樂編碼!

+0

感謝您的回覆,但仍然存在同樣的問題「訪問被拒絕:DriveApp」。 – darul75

+0

Drive API版本不是問題。它與與appDataFolder(https://www.googleapis.com/auth/drive.appdata)相關的特定範圍有關。此範圍必須由用戶明確授予,並且目前只能通過設置OAuth流程來完成。 –

1

用戶必須明確授予對專用AppData文件夾的附加訪問權限。目前這隻能通過設置OAuth2流程來實現。

編輯截至2017年11月,Apps腳本現在支持顯式OAuth範圍。不再需要設置自定義OAuth流程,只需在清單文件中設置所需的OAuth範圍(如文檔here所示)即可請求訪問用戶的應用程序數據文件夾。


下面是提供的OAuth2是如何工作的(Google Apps腳本無關)

OAuth 2.0: An Overview


一個很好的概述視頻如果你勝任這個任務,你可以查看谷歌的OAuth2 documentation並找出如何爲您的用例實施它,但最好利用「官方」OAuth2 library for Apps Script

這裏是一個涵蓋的OAuth使用所述庫加載項流向另一個視頻:

OAuth2 flows in Add-ons

注意:請確保您在使用流動的適當範圍(一個或多個)。在這種情況下,你只需要使用一個; https://www.googleapis.com/auth/drive.appdata


另外,如果你正在尋找一些代碼實現一個OAuth流訪問App Data文件夾簽出斯賓塞伊斯頓這個GitHub庫:

Apps-Script-Appfolder-Library


第二個視頻來自Totally Unscripted,這是一個由Google+ App Script community的應用腳本開發者託管的vlog。檢查一下,它是App Script開發的一個很好的資源。

相關問題