Вот код для загрузки файла в погружение Google после входа в систему.
var accessToken = this.userData.token; // Here gapi is used for retrieving the access token.
console.log("accessToken :: " + accessToken);
var form = new FormData();
form.append('metadata', new Blob([JSON.stringify(metadata)], {type: 'application/json'}));
form.append('file', file);
var xhr = new XMLHttpRequest();
xhr.open('post', 'https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart&fields=id');
xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
xhr.responseType = 'json';
console.log("XHR :: " + Object.values(xhr));
xhr.onload = () => {
console.log(xhr.response.id); // Retrieve uploaded file ID.
};
xhr.send(file);
console.log("success.");
Если я использую учетную запись, которая использовалась для создания client_id и app_key, он может публиковать данные файла, ноЕсли я использую любую другую учетную запись, это выдает мне ошибку, как показано ниже.
https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart&fields=id 403
Я проверил на oAuth plaground с теми же деталями и получил ответ, подобный этому.
Www-authenticate: Bearer realm="https://accounts.google.com/", error=insufficient_scope, scope="https://www.googleapis.com/auth/drive"
{
"error": {
"code": 403,
"message": "Insufficient Permission",
"errors": [
{
"domain": "global",
"message": "Insufficient Permission",
"reason": "insufficientPermissions"
}
]
}
}