Я пытаюсь интегрировать Google Диск в свое угловое приложение, чтобы наши пользователи могли копировать содержимое из документов и загружать свои изображения в мое приложение. Согласно file:get API Documentation, я используя приведенный ниже код, чтобы получить файл
var request = gapi.client.drive.files.get({
'fileId': fileId
});
var temp = this;
request.execute(function (resp) {
});
Но в ответ я получаю только имя файла и идентификатор. URL-адрес загрузки, который требуется для функции downloadFile, отсутствует. Ответ:
{kind: "drive#file",
id: "1KxxxxxxxxxxxxxxycMcfp8YWH2I",
name: " Report-November",
mimeType: "application/vnd.google-apps.spreadsheet",
result:{
kind: "drive#file"
id: "1K7DxawpFz_xiEpxxxxxxxblfp8YWH2I"
name: " Report-November"
mimeType: "application/vnd.google-apps.spreadsheet"
}
}
Функция загрузки файла:
/**
* Download a file's content.
*
* @param {File} file Drive File instance.
* @param {Function} callback Function to call when the request is complete.
*/
downloadFile(file, callback) {
if (file.downloadUrl) {
var accessToken = gapi.auth.getToken().access_token;
var xhr = new XMLHttpRequest();
xhr.open('GET', file.downloadUrl);
xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
xhr.onload = function () {
callback(xhr.responseText);
};
xhr.onerror = function () {
callback(null);
};
xhr.send();
} else {
callback(null);
}
}
Я что-то упустил? Правильно ли загружать файл с Диска на стороне клиента?