Список общедоступных файлов с Google Drive, используя ключ учетной записи службы, не получая общедоступные файлы - PullRequest
0 голосов
/ 01 июня 2018

У меня возникла проблема при кодировании: при использовании ключа учетной записи службы и API drive.files.list я не могу получить файлы, хотя я публично предоставил доступ ко всем файлам

const { google } = require('googleapis');
const drive = google.drive('v3');
const jwtClient = new google.auth.JWT(
    client_email,
    null,
    private_key,
    ['https://www.googleapis.com/auth/drive']
);

jwtClient.authorize(function (err, tokens) {
    if (err) {
        console.log(err);
        return;
    } else {
        console.log("Successfully connected!");
    }
});


// List Drive files.
drive.files.list({
    auth: jwtClient,
    // fields: "files",
    includeRemoved: false,
    spaces: 'drive'
}, (listErr, resp) => {
    if (listErr) {
        console.log(listErr);
        return;
    }
    console.log("Result ========>", resp.data.files)
});
  • В результате я ничего не получаю, хотя я публично поделился всеми файлами и получил права на редактирование для всех.
  • В учетной записи службы я включил Google API и дал разрешение qwner.
  • Iхочу, чтобы все общедоступные файлы были перечислены.
  • Где я не прав в коде.

, пожалуйста, помогите мне в этом.спасибо:)

1 Ответ

0 голосов
/ 01 июня 2018

Сервисная учетная запись - это не вы, а фиктивный пользователь.Как и любой пользователь, файл files.list будет возвращать только те файлы, к которым у него есть доступ.Это файлы, которые он создал, и файлы, которыми кто-то поделился с ним.Хотя можно подумать, что к публичным файлам каждый имеет доступ.Если файл files.list вернул список всех файлов на диске Google, которые были установлены для общего доступа, это был бы огромный список и не очень полезный.

Установив файл как общедоступный, если у вас есть идентификатор файла, вы сможете увидеть его с помощью ключа API.Вы не сможете отредактировать его, но сможете создать файл file.get для него.

Возьмите адрес электронной почты учетной записи службы и перейдите на диск Google.Вы бы любой другой пользователь.Вы также можете поделиться каждым файлом индивидуально с учетной записью службы, если хотите.Затем попробуйте создать файл files.list.

...