API Google Диска - Получение родительской папки с file_id? - PullRequest
0 голосов
/ 20 января 2020

Тема Google Диска Есть ли способ получить «имя папки» с помощью file_id или folder_id?

Ответы [ 2 ]

1 голос
/ 20 января 2020

Это не может быть сделано за один вызов, его должно быть два. Сначала вы найдете родительский идентификатор идентификатора файла, который у вас есть, затем вам нужно запросить имя папки, используя родительский идентификатор, который был возвращен вам при первом вызове.

GET https://www.googleapis.com/drive/v3/files/[FileId]?fields=parents

Даст вам родительский идентификатор папки, в которой файл находится в данный момент

GET https://www.googleapis.com/drive/v3/files/[ParentId]?fields=name

Даст вам имя родительской папки


Вот простой пример, сделанный с помощью "node.js"

Мы ищем имя файла "123" , как только найден поиск родительского идентификатора

Способ обратного вызова:

function getParentID(auth) {

    const drive = google.drive({
        version: 'v3',
        auth
    });

    drive.files.list({
        q: "name = '123'"
    }, (err, res) => {

        if (err) return console.log('#1001 - The API returned an error: ' + err);

        const fileId = res.data.files[0].id;
        console.log("File ID : ", fileId);

        drive.files.get({
            fileId: fileId,
            fields: "parents"
        }, (err, res) => {

            if (err) return console.log('#1002 - The API returned an error:' + err);

            console.log("Parent folder ID :", res.data.parents[0])

        })

    });

}

Способ обещания:

function getParentID2(auth) {

    const drive = google.drive({
        version: 'v3',
        auth
    });

    drive.files.list({
        q: "name = '123'"
    }).then((res) => {

        const fileId = res.data.files[0].id;
        console.log("File ID : ", fileId);

        drive.files.get({
            fileId: fileId,
            fields: "parents"
        }).then((res) => {
            console.log("Parent folder ID :", res.data.parents[0])
        })

    }).catch((err) => {
        console.log(err.response.data)  
    })

}

Выход:

File ID : 2xU_zgmOcjOIterprt91wibEEKU8fuNI-yZuBcgvEFjY Parent folder ID : 2KQve4H24jlgJKcywGRBJaOnTK2tDLZgR

Ссылки:

1 голос
/ 20 января 2020

Этого нельзя сделать за один звонок, его должно быть два. Сначала вы найдете родительский идентификатор идентификатора файла, который у вас есть, затем вам нужно запросить имя папки, используя родительский идентификатор, который был возвращен вам при первом вызове.

GET https://www.googleapis.com/drive/v3/files/[FileId]?fields=parents

Даст вам родительский идентификатор папки, в которой файл находится в данный момент

GET https://www.googleapis.com/drive/v3/files/[ParentId]?fields=name

Даст вам имя родительской папки

...