конвертировать Word do c в Google do c с помощью API через nodejs с помощью drive.files.copy конвертировать в v3 из Google Drive API - PullRequest
1 голос
/ 24 февраля 2020

Я пытаюсь конвертировать Word do c в Google do c, используя API через nodejs. Документы со словами уже находятся в папке, и я просто хочу преобразовать их в документы Google. Я использую v3.

Документы v3 говорят, что для преобразования файла с использованием копии необходимо заменить параметр convert на mimeType в теле ресурса.

Я не могу понять, как это сделать?

function listFiles(auth) {
  const drive = google.drive({version: 'v3', auth});
  drive.files.list({
    q: "mimeType = 'application/msword'",
    pageSize: 100,
    fields: 'nextPageToken, files(id, name)',
  }, (err, res) => {
    if (err) return console.log('The API returned an error: ' + err);
    const files = res.data.files;
    if (files.length) {
      console.log('Files:');
      files.map((file) => {
        console.log(`${file.name} (${file.id})`);
        drive.files.copy({
          fileId: file.id,
          'name' : 'Updated File Name',
          'mimeType' : 'application/vnd.google-apps.document'
        })
      });
    } else {
      console.log('No files found.');
    }
  });
}

Не уверен, что я вполне понимаю, как ссылаться на тело ресурса. Был бы благодарен за руля?

1 Ответ

1 голос
/ 25 февраля 2020
  • Вы хотите преобразовать Microsoft Word (do c files) в Google Document, используя метод files.copy в Drive API v3.
  • Вы хотите добиться этого, используя googleapis с Node.js.
  • Вы уже смогли получить и поместить файлы для Google Диска с помощью Drive API.

Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

Точки модификации:

  • Я думаю, что drive.files.list() работает в вашем сценарии.
  • Я думаю, что drive.files.copy() имеет часть модификации.
    • Пожалуйста, включите name и mimeType в requestBody или resource.
    • В этом случае используется функция обратного вызова для получения сообщения об ошибке.

Модифицированный скрипт:

С:
drive.files.copy({
  fileId: file.id,
  'name' : 'Updated File Name',
  'mimeType' : 'application/vnd.google-apps.document'
})
Кому:
drive.files.copy(
  {
    fileId: file.id,
    requestBody: {  // You can also use "resource" instead of "requestBody".
      name: file.name,
      mimeType: "application/vnd.google-apps.document"
    }
  },
  (err, res) => {
    if (err) return console.log("The API returned an error: " + err);
    console.log(res.data);  // If you need, you can see the information of copied file.
  }
);
  • В этом случае имя файла DO C используется путем удаления расширения. И скопированный файл помещается в ту же папку, что и файл DO C.

Примечание:

  • В этом измененном сценарии предполагается, что установленные вами области действия можно использовать для использования drive.files.copy(). Если возникает ошибка, связанная с областями, добавьте к областям https://www.googleapis.com/auth/drive.

Ссылки:

Если я неправильно понял ваш вопрос, и это было не то направление, которое вы хотите, я прошу прощения.

...