我一直在試圖創建一個使用谷歌這個非常簡單的Web應用程序的JavaScript應用程序狀態驅動appDataFolder存儲和讀取它的狀態,在JSON格式。但是,v3驅動器api的文檔不包含有關如何輕鬆實現此功能的全面示例。使用谷歌驅動appDataFolder存儲在客戶端
到目前爲止,我能夠授權和負荷谷歌驅動API,但我沒能創建配置JSON文件,如果它不存在,或更新其內容或讀取如果它存在。
我做的呼聲是:gapi.client.drive.files.get檢索配置JSON,gapi.client.drive.files.create創建配置JSON和GAPI。 client.drive.files.update更新其內容。
我一直在嘗試使用javascript Blob對象來表示我的文件及其內容,但沒有任何工作。
鑑於我有一個像例如的配置{測試:真正}字符串化和文件名我-app.json,我怎麼會叫gapi.client.drive.files API能夠到創建/更新/讀取這個配置?
檢索部分我試圖通過首先獲取應用程序文件夾中的文件列表,通過名稱匹配配置文件,獲取其ID,然後再次請求該文件使用ID。但由於我無法創建該文件,我不確定它是否有效。
代碼目前看起來是這樣的(重要的是要注意,此代碼得到建立和它在客戶端瀏覽器中運行,而不是在服務器上):
var config = require('../config/google-drive-config');
var authorize = function (immediate) {
return gapi.auth.authorize({
'client_id': config.clientId,
scope: config.scopes.join(' '),
immediate: !!immediate
});
};
var loadDriveAPI = function() {
return gapi.client.load(
config.apiName,
config.apiVersion
);
};
var loadAppDataFileId = function() {
return gapi.client.drive.files
.list({
spaces: 'appDataFolder'
})
.then(function(response) {
return _(response.files)
.find({ name: config.appDataFile })
.get('id')
.value();
});
};
var loadAppData = function (fileId) {
return gapi.client.drive.files
.get({
'fileId': fileId
});
};
var saveAppData = function (appData, fileId) {
var resource = {
'name': config.appDataFile,
'parents': 'appDataFolder'
};
var media = {
mimeType: 'application/json',
body: new Blob([JSON.stringify(appData)], { type: 'application/json' })
};
if (fileId) {
return gapi.client.drive.files
.update({
fileId: fileId,
media: media
});
}
return gapi.client.drive.files
.create({
resource: resource,
media: media,
fields: 'id'
});
};
module.exports = {
authorize: authorize,
loadDriveAPI: loadDriveAPI,
loadAppDataFileId: loadAppDataFileId,
loadAppData: loadAppData,
saveAppData: saveAppData
};
我有完全一樣的問題。 我想更新我的文件,我有fileId。並有一些我希望存儲的json數據。 –
歡迎使用stackoverflow。請參閱[如何編寫一個很好的stackoverflow問題](http:// stackoverflow。com/help/how-to-ask)來改善您的問題,向我們展示不起作用的創建代碼。 –
是的,我意識到現在這個問題沒有正確制定。我會用我的代碼更新。感謝您的反饋@ZigMandel –